@remnic/core 9.3.769 → 9.3.771
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.js +34 -34
- package/dist/access-boundary.d.ts +2 -1
- package/dist/access-boundary.js +35 -35
- package/dist/access-cli.js +103 -100
- package/dist/access-cli.js.map +1 -1
- package/dist/access-errors.d.ts +5 -0
- package/dist/access-errors.js +8 -0
- package/dist/access-errors.js.map +1 -0
- package/dist/access-http.js +46 -43
- package/dist/access-identity-continuity-surface.js +34 -34
- package/dist/access-lcm-surface.js +34 -34
- package/dist/access-mcp-output-schemas.d.ts +20 -0
- package/dist/access-mcp-output-schemas.js +8 -0
- package/dist/access-mcp-output-schemas.js.map +1 -0
- package/dist/access-mcp.js +43 -40
- package/dist/access-observe-write-surface.js +34 -34
- package/dist/access-operations-batch.js +39 -37
- package/dist/access-operations.js +41 -39
- package/dist/access-recall-surface.js +34 -34
- package/dist/access-schema.js +3 -3
- package/dist/access-service.js +34 -34
- package/dist/access-surface-catalog.js +1 -0
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/active-recall.js +5 -5
- package/dist/adapters/index.js +4 -4
- package/dist/adapters/registry.js +2 -2
- package/dist/auto-sync-2SOUW4JW.js +1 -1
- package/dist/briefing.js +8 -8
- package/dist/causal-behavior.js +5 -5
- package/dist/causal-chain.js +3 -3
- package/dist/causal-consolidation.js +12 -12
- package/dist/causal-retrieval.js +3 -3
- package/dist/causal-trajectory.js +1 -1
- package/dist/{chunk-IGVKWKR2.js → chunk-27CQIO7T.js} +13 -13
- package/dist/{chunk-GLERZDM7.js → chunk-27TJRC2Y.js} +29 -7
- package/dist/chunk-27TJRC2Y.js.map +1 -0
- package/dist/{chunk-VKHZFF5P.js → chunk-44YXWE35.js} +2 -2
- package/dist/chunk-5RUE3GHQ.js +445 -0
- package/dist/chunk-5RUE3GHQ.js.map +1 -0
- package/dist/{chunk-R3K4CXPR.js → chunk-6QODJKOV.js} +2 -2
- package/dist/{chunk-ORAK3LNZ.js → chunk-6SHAUM5S.js} +5 -5
- package/dist/{chunk-2MR3MFQB.js → chunk-6Y4JTNX7.js} +2 -2
- package/dist/{chunk-CKNAVW34.js → chunk-7OSULYN2.js} +2 -2
- package/dist/{chunk-6T4LTI2F.js → chunk-7XH7VJN4.js} +4 -4
- package/dist/{chunk-JBPKEARU.js → chunk-AU7Q3LSC.js} +4 -4
- package/dist/{chunk-U5GFYMV7.js → chunk-BKTC7JCA.js} +3 -3
- package/dist/{chunk-AS2NRB45.js → chunk-BMANIB5B.js} +2 -2
- package/dist/{chunk-OAREUC7N.js → chunk-C2DDH5UN.js} +34 -34
- package/dist/{chunk-YDYC6PIS.js → chunk-CXBFYSQY.js} +2 -2
- package/dist/{chunk-DTTVX6EO.js → chunk-EGLUVV6B.js} +12 -12
- package/dist/{chunk-YNDLCWXS.js → chunk-EZ25VE3G.js} +4 -4
- package/dist/chunk-FTYDWKO6.js +101 -0
- package/dist/chunk-FTYDWKO6.js.map +1 -0
- package/dist/{chunk-SFNQDXXL.js → chunk-J2QYB2D5.js} +3 -3
- package/dist/{chunk-SQNED75R.js → chunk-KYC3RLYJ.js} +1 -1
- package/dist/{chunk-OX272PBW.js → chunk-L42FA4BU.js} +2 -2
- package/dist/{chunk-NDXJJKT2.js → chunk-LU7ATMRV.js} +2 -2
- package/dist/{chunk-V5RVMULT.js → chunk-LZ73Y56P.js} +10 -10
- package/dist/{chunk-IVFIYAIP.js → chunk-MJE4XV4A.js} +5 -5
- package/dist/{chunk-N4ZA2I7M.js → chunk-OTMAYEY5.js} +2 -2
- package/dist/{chunk-FLVL4L3L.js → chunk-OUXPVWTZ.js} +5 -5
- package/dist/{chunk-PA5ALD3S.js → chunk-OW4UXZNP.js} +129 -109
- package/dist/chunk-OW4UXZNP.js.map +1 -0
- package/dist/{chunk-4HYFKIGH.js → chunk-PSNMICC2.js} +4 -4
- package/dist/chunk-RANHFI3P.js +8 -0
- package/dist/chunk-RANHFI3P.js.map +1 -0
- package/dist/{chunk-CNXMWYLA.js → chunk-RFZW7NID.js} +165 -75
- package/dist/chunk-RFZW7NID.js.map +1 -0
- package/dist/{chunk-4JG55YV3.js → chunk-TECYUPFB.js} +4 -4
- package/dist/{chunk-EVXI2I6G.js → chunk-U3TRHUSJ.js} +64 -64
- package/dist/{chunk-SIPZ5UMK.js → chunk-U5HD7BB2.js} +27 -6
- package/dist/chunk-U5HD7BB2.js.map +1 -0
- package/dist/{chunk-X7HTU4HO.js → chunk-VFHDUFH5.js} +2 -2
- package/dist/{chunk-CVINPTKG.js → chunk-X5NUL5N4.js} +5 -5
- package/dist/{chunk-NFWTMM2M.js → chunk-XNWLD3RR.js} +2 -2
- package/dist/{chunk-QPTP6SKC.js → chunk-YOELDDBF.js} +2 -2
- package/dist/{chunk-2RLECZ6J.js → chunk-YRZMCPC5.js} +2 -2
- package/dist/{chunk-MSGPLITO.js → chunk-ZI3YYOOV.js} +2 -2
- package/dist/{chunk-MSGPLITO.js.map → chunk-ZI3YYOOV.js.map} +1 -1
- package/dist/cli.js +70 -67
- package/dist/compounding/engine.js +8 -8
- package/dist/config.js +2 -2
- package/dist/connectors/codex-materialize-runner.js +8 -8
- package/dist/connectors/index.js +8 -8
- package/dist/consolidation-provenance-check.js +2 -2
- package/dist/dashboard-runtime.js +2 -2
- package/dist/entity-retrieval.js +8 -8
- package/dist/extraction.js +1 -1
- package/dist/{forget-WYLR4ZFV.js → forget-OEE5OELK.js} +2 -2
- package/dist/index.js +175 -172
- package/dist/lcm/engine.js +4 -4
- package/dist/lcm/index.js +11 -11
- package/dist/maintenance/memory-governance.js +9 -9
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +8 -8
- package/dist/maintenance/rebuild-memory-projection.js +10 -10
- package/dist/namespaces/migrate.js +13 -13
- package/dist/namespaces/search.js +4 -4
- package/dist/namespaces/storage.js +8 -8
- package/dist/operator-toolkit.js +19 -19
- package/dist/orchestration/maintenance.js +10 -10
- package/dist/orchestrator.js +103 -100
- package/dist/recall-timings.d.ts +26 -0
- package/dist/recall-timings.js +16 -0
- package/dist/recall-timings.js.map +1 -0
- package/dist/resume-bundles.js +3 -3
- package/dist/search/factory.js +3 -3
- package/dist/search/index.js +7 -7
- package/dist/semantic-consolidation.js +11 -11
- package/dist/semantic-rule-promotion.js +8 -8
- package/dist/semantic-rule-verifier.js +9 -9
- package/dist/storage.js +8 -8
- package/dist/transfer/autodetect.js +1 -1
- package/dist/transfer/backup.js +1 -1
- package/dist/transfer/capsule-export.js +2 -2
- package/dist/verified-recall.js +9 -9
- package/package.json +2 -2
- package/src/access-boundary.ts +2 -0
- package/src/access-errors.ts +2 -0
- package/src/access-http.ts +32 -1
- package/src/access-mcp-output-schemas.ts +472 -0
- package/src/access-mcp.ts +235 -143
- package/src/access-operations-batch.ts +19 -0
- package/src/access-surface-catalog.ts +1 -0
- package/src/orchestration/recall-internal.ts +21 -3
- package/src/recall-timings-access.test.ts +301 -0
- package/src/recall-timings.ts +141 -0
- package/dist/chunk-CNXMWYLA.js.map +0 -1
- package/dist/chunk-GLERZDM7.js.map +0 -1
- package/dist/chunk-PA5ALD3S.js.map +0 -1
- package/dist/chunk-SIPZ5UMK.js.map +0 -1
- /package/dist/{chunk-IGVKWKR2.js.map → chunk-27CQIO7T.js.map} +0 -0
- /package/dist/{chunk-VKHZFF5P.js.map → chunk-44YXWE35.js.map} +0 -0
- /package/dist/{chunk-R3K4CXPR.js.map → chunk-6QODJKOV.js.map} +0 -0
- /package/dist/{chunk-ORAK3LNZ.js.map → chunk-6SHAUM5S.js.map} +0 -0
- /package/dist/{chunk-2MR3MFQB.js.map → chunk-6Y4JTNX7.js.map} +0 -0
- /package/dist/{chunk-CKNAVW34.js.map → chunk-7OSULYN2.js.map} +0 -0
- /package/dist/{chunk-6T4LTI2F.js.map → chunk-7XH7VJN4.js.map} +0 -0
- /package/dist/{chunk-JBPKEARU.js.map → chunk-AU7Q3LSC.js.map} +0 -0
- /package/dist/{chunk-U5GFYMV7.js.map → chunk-BKTC7JCA.js.map} +0 -0
- /package/dist/{chunk-AS2NRB45.js.map → chunk-BMANIB5B.js.map} +0 -0
- /package/dist/{chunk-OAREUC7N.js.map → chunk-C2DDH5UN.js.map} +0 -0
- /package/dist/{chunk-YDYC6PIS.js.map → chunk-CXBFYSQY.js.map} +0 -0
- /package/dist/{chunk-DTTVX6EO.js.map → chunk-EGLUVV6B.js.map} +0 -0
- /package/dist/{chunk-YNDLCWXS.js.map → chunk-EZ25VE3G.js.map} +0 -0
- /package/dist/{chunk-SFNQDXXL.js.map → chunk-J2QYB2D5.js.map} +0 -0
- /package/dist/{chunk-SQNED75R.js.map → chunk-KYC3RLYJ.js.map} +0 -0
- /package/dist/{chunk-OX272PBW.js.map → chunk-L42FA4BU.js.map} +0 -0
- /package/dist/{chunk-NDXJJKT2.js.map → chunk-LU7ATMRV.js.map} +0 -0
- /package/dist/{chunk-V5RVMULT.js.map → chunk-LZ73Y56P.js.map} +0 -0
- /package/dist/{chunk-IVFIYAIP.js.map → chunk-MJE4XV4A.js.map} +0 -0
- /package/dist/{chunk-N4ZA2I7M.js.map → chunk-OTMAYEY5.js.map} +0 -0
- /package/dist/{chunk-FLVL4L3L.js.map → chunk-OUXPVWTZ.js.map} +0 -0
- /package/dist/{chunk-4HYFKIGH.js.map → chunk-PSNMICC2.js.map} +0 -0
- /package/dist/{chunk-4JG55YV3.js.map → chunk-TECYUPFB.js.map} +0 -0
- /package/dist/{chunk-EVXI2I6G.js.map → chunk-U3TRHUSJ.js.map} +0 -0
- /package/dist/{chunk-X7HTU4HO.js.map → chunk-VFHDUFH5.js.map} +0 -0
- /package/dist/{chunk-CVINPTKG.js.map → chunk-X5NUL5N4.js.map} +0 -0
- /package/dist/{chunk-NFWTMM2M.js.map → chunk-XNWLD3RR.js.map} +0 -0
- /package/dist/{chunk-QPTP6SKC.js.map → chunk-YOELDDBF.js.map} +0 -0
- /package/dist/{chunk-2RLECZ6J.js.map → chunk-YRZMCPC5.js.map} +0 -0
- /package/dist/{forget-WYLR4ZFV.js.map → forget-OEE5OELK.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runPostConsolidationMaterialize
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YRZMCPC5.js";
|
|
4
4
|
import {
|
|
5
5
|
discoverMemoryExtensions,
|
|
6
6
|
renderExtensionsBlock,
|
|
@@ -12,13 +12,13 @@ import {
|
|
|
12
12
|
import {
|
|
13
13
|
resolvePipelineProcessingCapabilities
|
|
14
14
|
} from "./chunk-VSF7AAGE.js";
|
|
15
|
+
import {
|
|
16
|
+
log
|
|
17
|
+
} from "./chunk-NU3CSQ4H.js";
|
|
15
18
|
import {
|
|
16
19
|
countRecallTokenOverlap,
|
|
17
20
|
normalizeRecallTokens
|
|
18
21
|
} from "./chunk-ZBJMUXZH.js";
|
|
19
|
-
import {
|
|
20
|
-
log
|
|
21
|
-
} from "./chunk-NU3CSQ4H.js";
|
|
22
22
|
|
|
23
23
|
// src/semantic-consolidation.ts
|
|
24
24
|
function findSimilarClusters(memories, config) {
|
|
@@ -220,4 +220,4 @@ export {
|
|
|
220
220
|
buildExtensionsBlockForConsolidation,
|
|
221
221
|
materializeAfterSemanticConsolidation
|
|
222
222
|
};
|
|
223
|
-
//# sourceMappingURL=chunk-
|
|
223
|
+
//# sourceMappingURL=chunk-X5NUL5N4.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveDefaultNamespaceRoot,
|
|
3
3
|
resolveNamespaceStorageRoot
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-L42FA4BU.js";
|
|
5
5
|
import {
|
|
6
6
|
getConfiguredNamespaces
|
|
7
7
|
} from "./chunk-BAVVI5GP.js";
|
|
@@ -2042,4 +2042,4 @@ export {
|
|
|
2042
2042
|
runNamespaceMaintenancePlan,
|
|
2043
2043
|
runNamespaceMaintenanceBatchPlan
|
|
2044
2044
|
};
|
|
2045
|
-
//# sourceMappingURL=chunk-
|
|
2045
|
+
//# sourceMappingURL=chunk-XNWLD3RR.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-JRZV3767.js";
|
|
5
5
|
import {
|
|
6
6
|
StorageManager
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-EGLUVV6B.js";
|
|
8
8
|
import {
|
|
9
9
|
parseContinuityImprovementLoops
|
|
10
10
|
} from "./chunk-LDXUBPMO.js";
|
|
@@ -1276,4 +1276,4 @@ export {
|
|
|
1276
1276
|
defaultTierMigrationCycleBudget,
|
|
1277
1277
|
CompoundingEngine
|
|
1278
1278
|
};
|
|
1279
|
-
//# sourceMappingURL=chunk-
|
|
1279
|
+
//# sourceMappingURL=chunk-YOELDDBF.js.map
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from "./chunk-3UXOZBHV.js";
|
|
8
8
|
import {
|
|
9
9
|
StorageManager
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-EGLUVV6B.js";
|
|
11
11
|
import {
|
|
12
12
|
isSafeRouteNamespace
|
|
13
13
|
} from "./chunk-U3PN77QT.js";
|
|
@@ -118,4 +118,4 @@ export {
|
|
|
118
118
|
runCodexMaterialize,
|
|
119
119
|
runPostConsolidationMaterialize
|
|
120
120
|
};
|
|
121
|
-
//# sourceMappingURL=chunk-
|
|
121
|
+
//# sourceMappingURL=chunk-YRZMCPC5.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
EngramAccessInputError
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-C2DDH5UN.js";
|
|
4
4
|
import {
|
|
5
5
|
expandTildePath
|
|
6
6
|
} from "./chunk-EYIEWJNI.js";
|
|
@@ -130,4 +130,4 @@ export {
|
|
|
130
130
|
listRegisteredOperations,
|
|
131
131
|
__resetRegistryForTest
|
|
132
132
|
};
|
|
133
|
-
//# sourceMappingURL=chunk-
|
|
133
|
+
//# sourceMappingURL=chunk-ZI3YYOOV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/access-boundary.ts"],"sourcesContent":["/**\n * Single input-validation and error boundary for the CLI/MCP/HTTP access\n * surfaces (issue #1525, epic #1520 Phase 1).\n *\n * Every operation that crosses the access-service facade passes through ONE\n * registry entry: a zod-validated request envelope, a shared error mapper,\n * and the \"reject invalid input and list valid options\" behavior that\n * CLAUDE.md rules 14/17/24/28/36/48/51 previously had to be re-implemented\n * per handler. The three surfaces become thin adapters — one operation\n * definition, three transports — so a validation fix lands everywhere at\n * once.\n *\n * Host-agnostic (rule 31): operation names carry no `openclaw-*`/`engram-*`\n * prefix. Session/namespace tenancy stays in the handler layer (resolved via\n * ScopePlan #1521); the boundary validates SHAPE, not tenancy.\n */\n\nimport { z } from \"zod\";\nimport { EngramAccessInputError, type EngramAccessService } from \"./access-service.js\";\nimport { expandTildePath } from \"./utils/path.js\";\n\n// ---------------------------------------------------------------------------\n// Canonical operation names — host-agnostic (rule 31)\n// ---------------------------------------------------------------------------\n\n/**\n * Canonical operation ids. One id is shared by the MCP tool, the HTTP route,\n * and the CLI command that expose the same operation. Add to this union as\n * each domain-group migration PR (memory ops → connectors → namespaces …)\n * lands; the fitness test in `access-surface-catalog.test.ts` treats the\n * registered set as the migration state.\n */\nexport type OperationName =\n | \"memory_get\"\n | \"memory_search\"\n | \"memory_store\"\n | \"coding_decision\"\n | \"coding_architecture\"\n // codegraph parity tools (issue #1554) -- each maps to one codegraph_*\n // boundary operation that delegates to the surface handler in\n // coding/codegraph-surfaces.ts. Names match the external tool suffixes.\n | \"codegraph_index\"\n | \"codegraph_list_projects\"\n | \"codegraph_delete_project\"\n | \"codegraph_index_status\"\n | \"codegraph_search_graph\"\n | \"codegraph_trace_path\"\n | \"codegraph_detect_changes\"\n | \"codegraph_query_graph\"\n | \"codegraph_get_schema\"\n | \"codegraph_get_snippet\"\n | \"codegraph_get_architecture\"\n | \"codegraph_search_code\"\n | \"codegraph_manage_adr\"\n | \"codegraph_ingest_traces\"\n | \"memory_correct_plan\"\n | \"memory_correct_apply\"\n | \"coding_delta\"\n // Remaining MCP/HTTP handlers migrated through the boundary (issue #1525).\n | \"recall\"\n | \"recall_explain\"\n | \"set_coding_context\"\n | \"recall_tier_explain\"\n | \"recall_xray\"\n | \"wearables_status\"\n | \"wearables_sync\"\n | \"transcript_day\"\n | \"transcript_search\"\n | \"transcript_memories\"\n | \"action_confidence\"\n | \"chatgpt_memory_inspector\"\n | \"day_summary\"\n | \"capsule_export\"\n | \"capsule_import\"\n | \"capsule_list\"\n | \"memory_governance_run\"\n | \"procedure_mining_run\"\n | \"pattern_reinforcement_run\"\n | \"procedural_stats\"\n | \"memory_timeline\"\n | \"suggestion_submit\"\n | \"entity_get\"\n | \"review_queue_list\"\n | \"correction_pending\"\n | \"observe\"\n | \"lcm_search\"\n | \"lcm_compaction_flush\"\n | \"lcm_compaction_record\"\n | \"continuity_audit_generate\"\n | \"continuity_incident_open\"\n | \"continuity_incident_close\"\n | \"continuity_incident_list\"\n | \"continuity_loop_add_or_update\"\n | \"continuity_loop_review\"\n | \"identity_anchor_get\"\n | \"identity_anchor_update\"\n | \"memory_identity\"\n | \"work_task\"\n | \"work_project\"\n | \"work_board\"\n | \"shared_context_write_output\"\n | \"shared_feedback_record\"\n | \"shared_priorities_append\"\n | \"shared_context_cross_signals_run\"\n | \"shared_context_curate_daily\"\n | \"compounding_weekly_synthesize\"\n | \"compounding_promote_candidate\"\n | \"compression_guidelines_optimize\"\n | \"compression_guidelines_activate\"\n | \"memory_profile\"\n | \"memory_entities_list\"\n | \"memory_questions\"\n | \"memory_last_recall\"\n | \"memory_intent_debug\"\n | \"memory_qmd_debug\"\n | \"memory_graph_explain\"\n | \"graph_snapshot\"\n | \"memory_feedback\"\n | \"memory_promote\"\n | \"memory_outcome\"\n | \"memory_action_apply\"\n | \"context_checkpoint\"\n | \"briefing\"\n | \"review_list\"\n | \"review_resolve\"\n | \"contradiction_scan_run\"\n | \"memory_summarize_hourly\"\n | \"conversation_index_update\"\n | \"profiling_report\"\n | \"graph_edge_decay_run\"\n | \"live_connectors_run\"\n | \"peer_list\"\n | \"peer_get\"\n | \"peer_set\"\n | \"peer_delete\"\n | \"peer_profile_get\"\n | \"peer_forget\"\n | \"console_state\"\n | \"dreams_status\"\n | \"dreams_run\"\n // HTTP-only routes (no direct MCP tool equivalent).\n | \"offline_sync_snapshot\"\n | \"offline_sync_snapshot_stream\"\n | \"offline_sync_files\"\n | \"offline_sync_file_content\"\n | \"offline_sync_apply_file_content\"\n | \"offline_sync_apply\"\n | \"lcm_status\"\n | \"memory_list\"\n | \"entity_list\"\n | \"maintenance_status\"\n | \"quality_status\"\n | \"trust_zones_status\"\n | \"trust_zones_records\"\n | \"review_disposition\"\n | \"trust_zones_promote\"\n | \"trust_zones_demo_seed\"\n | \"citations_observed\"\n | \"contradiction_detail\"\n | \"graph_events\"\n // Chat surface — conversational memory inspection/correction (issue #1583).\n | \"chat_message\"\n | \"chat_events\";\n\n// ---------------------------------------------------------------------------\n// Operation context — what every handler receives\n// ---------------------------------------------------------------------------\n\n/**\n * Per-call context. `service` is the facade the handler delegates to; the\n * boundary never reaches past it. `authenticatedPrincipal` is resolved by\n * the SURFACE (MCP header / HTTP identity / CLI flag) before the boundary\n * runs, so handlers stay principal-source-agnostic. `hooks` carries\n * transport-level callbacks (e.g. HTTP write-quota enforcement) that must\n * fire atomically inside the service call; surfaces that have no such hook\n * leave it undefined.\n */\nexport interface OperationContext {\n readonly service: EngramAccessService;\n readonly authenticatedPrincipal?: string;\n readonly hooks?: OperationHooks;\n}\n\n/**\n * Transport-level callbacks a handler forwards into the service call. Kept\n * narrow on purpose: the boundary owns validation + dispatch shape, not\n * transport policy. Add fields here only when a surface genuinely needs a\n * callback the service itself consumes.\n */\nexport interface OperationHooks {\n /** HTTP write-quota gate; throws to reject the write when exhausted. */\n readonly enforceWriteQuota?: () => void | Promise<void>;\n}\n\n// ---------------------------------------------------------------------------\n// Operation spec + bound operation\n// ---------------------------------------------------------------------------\n\nexport interface OperationSpec<In, Out> {\n /** Canonical operation id; matches an {@link OperationName}. */\n readonly name: OperationName;\n readonly description: string;\n /** Zod schema validating the raw request envelope. */\n readonly schema: z.ZodType<In>;\n /** Handler invoked with the parsed input; throws EngramAccessInputError for domain faults. */\n readonly handler: (input: In, ctx: OperationContext) => Promise<Out>;\n}\n\nexport interface BoundOperation<In = unknown, Out = unknown> {\n readonly spec: OperationSpec<In, Out>;\n /** Validate the raw envelope, then invoke the handler. Throws EngramAccessInputError on any validation failure. */\n readonly run: (rawInput: unknown, ctx: OperationContext) => Promise<Out>;\n}\n\n// ---------------------------------------------------------------------------\n// Shared normalizers the boundary owns (rules 17, 28, 36, 48, 51)\n// ---------------------------------------------------------------------------\n\n/**\n * Coerce boolean-like strings at the edge (rule 36). Accepts actual booleans\n * and the string spellings clients send (\"true\"/\"false\"/\"1\"/\"0\"/\"yes\"/\"no\"/\n * \"on\"/\"off\", case-insensitive). Rejects anything else loudly — `Boolean(\"false\")`\n * would silently be `true`, which is the bug rule 36 exists to prevent.\n *\n * `undefined`/`null`/`\"\"` → `undefined`, so callers can keep treating an\n * absent flag as \"use the default\" without a separate presence check.\n */\nexport function coerceBooleanLike(value: unknown): boolean | undefined {\n if (value === undefined || value === null || value === \"\") return undefined;\n if (typeof value === \"boolean\") return value;\n if (typeof value === \"string\") {\n const lower = value.trim().toLowerCase();\n if (lower === \"true\" || lower === \"1\" || lower === \"yes\" || lower === \"on\") return true;\n if (lower === \"false\" || lower === \"0\" || lower === \"no\" || lower === \"off\") return false;\n }\n throw new EngramAccessInputError(\n `expected a boolean-like value (true|false|1|0|yes|no|on|off); got ${JSON.stringify(value)}`,\n );\n}\n\n/**\n * Coerce + validate a positive integer from a numeric string or number\n * (rule 28). Loosely-typed MCP/CLI clients send `\"5\"`; `typeof saved === \"number\"`\n * on read-back would reject it later, so we coerce at the edge and reject\n * booleans/objects loudly (`Number(true) === 1` would silently pass otherwise).\n *\n * `undefined`/`null`/`\"\"` → `undefined`.\n */\nexport function coercePositiveInteger(value: unknown, label: string): number | undefined {\n if (value === undefined || value === null || value === \"\") return undefined;\n if (typeof value === \"number\") {\n if (!Number.isFinite(value) || value <= 0 || !Number.isInteger(value)) {\n throw new EngramAccessInputError(`${label} expects a positive integer; got ${JSON.stringify(value)}`);\n }\n return value;\n }\n if (typeof value === \"string\") {\n const trimmed = value.trim();\n if (!/^[+-]?\\d+$/.test(trimmed)) {\n throw new EngramAccessInputError(`${label} expects a positive integer; got ${JSON.stringify(value)}`);\n }\n const parsed = Number(trimmed);\n if (!Number.isSafeInteger(parsed) || parsed <= 0) {\n throw new EngramAccessInputError(`${label} expects a positive integer; got ${JSON.stringify(value)}`);\n }\n return parsed;\n }\n throw new EngramAccessInputError(`${label} expects a positive integer; got ${JSON.stringify(value)}`);\n}\n\n/**\n * Expand `~` in a path-shaped input (rule 17). Node `fs` does NOT expand `~`;\n * ad-hoc regex drifts. `undefined`/`null`/`\"\"` → `undefined`.\n */\nexport function normalizeOptionalPath(value: unknown): string | undefined {\n if (value === undefined || value === null || value === \"\") return undefined;\n if (typeof value !== \"string\") {\n throw new EngramAccessInputError(`expected a path string; got ${JSON.stringify(value)}`);\n }\n return expandTildePath(value);\n}\n\n// ---------------------------------------------------------------------------\n// Error formatting — rule 51: list valid options, never silently default\n// ---------------------------------------------------------------------------\n\n/**\n * Turn a zod failure into an {@link EngramAccessInputError} whose message\n * names the offending field and — for enum/union issues — lists the valid\n * options, so the caller can correct rather than guess (rule 51).\n */\nexport function formatZodIssues(error: z.ZodError): string {\n const parts: string[] = [];\n for (const issue of error.issues) {\n // Collapse array-index paths (e.g. [\"currentContextScopes\", 1]) to\n // the field name so the message reads \"field: must be ...\" not\n // \"field.1: must be ...\".\n const hasNumeric = issue.path.some((p) => typeof p === \"number\");\n const path = hasNumeric\n ? issue.path.filter((p) => typeof p === \"string\").join(\".\") || \"(root)\"\n : issue.path.length > 0 ? issue.path.join(\".\") : \"(root)\";\n const options = enumOptionsFromIssue(issue);\n const suffix = options ? `. Valid: ${options.join(\", \")}` : \"\";\n parts.push(`${path}: ${issue.message}${suffix}`);\n }\n return parts.length > 0\n ? `request validation failed: ${parts.join(\"; \")}`\n : \"request validation failed\";\n}\n\nfunction enumOptionsFromIssue(issue: z.ZodIssue): readonly string[] | undefined {\n // zod exposes accepted enum values on the issue for ZodEnum / ZodNativeEnum\n // and on the options of invalid_union discriminators. Reading them here\n // keeps \"list valid options\" in ONE place rather than per handler.\n if (issue.code === z.ZodIssueCode.invalid_enum_value) {\n const rawOptions = (issue as { options?: unknown }).options;\n if (Array.isArray(rawOptions)) {\n return rawOptions.map((opt) => String(opt));\n }\n }\n return undefined;\n}\n\n// ---------------------------------------------------------------------------\n// Registry\n// ---------------------------------------------------------------------------\n\nconst registry = new Map<OperationName, BoundOperation>();\n\n/**\n * Register an operation. Throws if the name is already registered — duplicate\n * registration is a programming error, not a runtime input fault, so it throws\n * a plain Error (not the input-error class surfaces translate for clients).\n */\n/**\n * Error map that converts Zod's generic type-mismatch messages into\n * human-readable \"must be a <type>\" messages (rule 51). Applied at the\n * boundary chokepoint so every operation gets consistent messaging\n * without per-handler boilerplate.\n */\nconst humanReadableErrorMap: z.ZodErrorMap = (issue, ctx) => {\n if (issue.code === z.ZodIssueCode.invalid_type) {\n if (issue.received === \"undefined\") return { message: ctx.defaultError };\n // Array-element type errors — collapse to field-level message.\n if (issue.path.some((p) => typeof p === \"number\")) {\n const arrField = issue.path.filter((p) => typeof p === \"string\").join(\".\");\n return { message: `${arrField} must be an array of ${issue.expected}s` };\n }\n const fieldName = issue.path.length > 0 ? String(issue.path[issue.path.length - 1]) : \"value\";\n switch (issue.expected) {\n case \"string\": return { message: `${fieldName} must be a string` };\n case \"boolean\": return { message: `${fieldName} must be a boolean` };\n case \"number\": return { message: `${fieldName} must be a number` };\n case \"array\": return { message: `${fieldName} must be an array` };\n case \"object\": return { message: `${fieldName} must be an object` };\n default: return { message: ctx.defaultError };\n }\n }\n return { message: ctx.defaultError };\n};\n\nexport function defineOperation<In, Out>(spec: OperationSpec<In, Out>): BoundOperation<In, Out> {\n if (registry.has(spec.name)) {\n throw new Error(`access-boundary: operation already registered: ${spec.name}`);\n }\n const bound: BoundOperation<In, Out> = {\n spec,\n run: async (rawInput, ctx) => {\n const parseResult = spec.schema.safeParse(rawInput, { errorMap: humanReadableErrorMap });\n if (!parseResult.success) {\n throw new EngramAccessInputError(formatZodIssues(parseResult.error));\n }\n return spec.handler(parseResult.data, ctx);\n },\n };\n // Store under the canonical name; the cast is safe because In/Out are\n // erased at the registry boundary and recovered by callers via getOperation.\n registry.set(spec.name, bound as unknown as BoundOperation);\n return bound;\n}\n\n/** Look up a registered operation by canonical name. */\nexport function getOperation(name: OperationName): BoundOperation | undefined {\n return registry.get(name);\n}\n\n/** All registered operation names. */\nexport function listRegisteredOperations(): readonly OperationName[] {\n return [...registry.keys()];\n}\n\n/** Test-only: clear the registry so pilot definitions can be re-registered. */\nexport function __resetRegistryForTest(): void {\n registry.clear();\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/access-boundary.ts"],"sourcesContent":["/**\n * Single input-validation and error boundary for the CLI/MCP/HTTP access\n * surfaces (issue #1525, epic #1520 Phase 1).\n *\n * Every operation that crosses the access-service facade passes through ONE\n * registry entry: a zod-validated request envelope, a shared error mapper,\n * and the \"reject invalid input and list valid options\" behavior that\n * CLAUDE.md rules 14/17/24/28/36/48/51 previously had to be re-implemented\n * per handler. The three surfaces become thin adapters — one operation\n * definition, three transports — so a validation fix lands everywhere at\n * once.\n *\n * Host-agnostic (rule 31): operation names carry no `openclaw-*`/`engram-*`\n * prefix. Session/namespace tenancy stays in the handler layer (resolved via\n * ScopePlan #1521); the boundary validates SHAPE, not tenancy.\n */\n\nimport { z } from \"zod\";\nimport { EngramAccessInputError, type EngramAccessService } from \"./access-service.js\";\nimport { expandTildePath } from \"./utils/path.js\";\n\n// ---------------------------------------------------------------------------\n// Canonical operation names — host-agnostic (rule 31)\n// ---------------------------------------------------------------------------\n\n/**\n * Canonical operation ids. One id is shared by the MCP tool, the HTTP route,\n * and the CLI command that expose the same operation. Add to this union as\n * each domain-group migration PR (memory ops → connectors → namespaces …)\n * lands; the fitness test in `access-surface-catalog.test.ts` treats the\n * registered set as the migration state.\n */\nexport type OperationName =\n | \"memory_get\"\n | \"memory_search\"\n | \"memory_store\"\n | \"coding_decision\"\n | \"coding_architecture\"\n // codegraph parity tools (issue #1554) -- each maps to one codegraph_*\n // boundary operation that delegates to the surface handler in\n // coding/codegraph-surfaces.ts. Names match the external tool suffixes.\n | \"codegraph_index\"\n | \"codegraph_list_projects\"\n | \"codegraph_delete_project\"\n | \"codegraph_index_status\"\n | \"codegraph_search_graph\"\n | \"codegraph_trace_path\"\n | \"codegraph_detect_changes\"\n | \"codegraph_query_graph\"\n | \"codegraph_get_schema\"\n | \"codegraph_get_snippet\"\n | \"codegraph_get_architecture\"\n | \"codegraph_search_code\"\n | \"codegraph_manage_adr\"\n | \"codegraph_ingest_traces\"\n | \"memory_correct_plan\"\n | \"memory_correct_apply\"\n | \"coding_delta\"\n // Remaining MCP/HTTP handlers migrated through the boundary (issue #1525).\n | \"recall\"\n | \"recall_explain\"\n | \"set_coding_context\"\n | \"recall_tier_explain\"\n | \"recall_xray\"\n | \"wearables_status\"\n | \"wearables_sync\"\n | \"transcript_day\"\n | \"transcript_search\"\n | \"transcript_memories\"\n | \"action_confidence\"\n | \"chatgpt_memory_inspector\"\n | \"day_summary\"\n | \"capsule_export\"\n | \"capsule_import\"\n | \"capsule_list\"\n | \"memory_governance_run\"\n | \"procedure_mining_run\"\n | \"pattern_reinforcement_run\"\n | \"procedural_stats\"\n | \"memory_timeline\"\n | \"suggestion_submit\"\n | \"entity_get\"\n | \"review_queue_list\"\n | \"correction_pending\"\n | \"observe\"\n | \"lcm_search\"\n | \"lcm_compaction_flush\"\n | \"lcm_compaction_record\"\n | \"continuity_audit_generate\"\n | \"continuity_incident_open\"\n | \"continuity_incident_close\"\n | \"continuity_incident_list\"\n | \"continuity_loop_add_or_update\"\n | \"continuity_loop_review\"\n | \"identity_anchor_get\"\n | \"identity_anchor_update\"\n | \"memory_identity\"\n | \"work_task\"\n | \"work_project\"\n | \"work_board\"\n | \"shared_context_write_output\"\n | \"shared_feedback_record\"\n | \"shared_priorities_append\"\n | \"shared_context_cross_signals_run\"\n | \"shared_context_curate_daily\"\n | \"compounding_weekly_synthesize\"\n | \"compounding_promote_candidate\"\n | \"compression_guidelines_optimize\"\n | \"compression_guidelines_activate\"\n | \"memory_profile\"\n | \"memory_entities_list\"\n | \"memory_questions\"\n | \"memory_last_recall\"\n | \"memory_intent_debug\"\n | \"memory_qmd_debug\"\n | \"memory_graph_explain\"\n | \"graph_snapshot\"\n | \"memory_feedback\"\n | \"memory_promote\"\n | \"memory_outcome\"\n | \"memory_action_apply\"\n | \"context_checkpoint\"\n | \"briefing\"\n | \"review_list\"\n | \"review_resolve\"\n | \"contradiction_scan_run\"\n | \"memory_summarize_hourly\"\n | \"conversation_index_update\"\n | \"profiling_report\"\n | \"graph_edge_decay_run\"\n | \"live_connectors_run\"\n | \"peer_list\"\n | \"peer_get\"\n | \"peer_set\"\n | \"peer_delete\"\n | \"peer_profile_get\"\n | \"peer_forget\"\n | \"console_state\"\n | \"dreams_status\"\n | \"dreams_run\"\n // HTTP-only routes (no direct MCP tool equivalent).\n | \"offline_sync_snapshot\"\n | \"offline_sync_snapshot_stream\"\n | \"offline_sync_files\"\n | \"offline_sync_file_content\"\n | \"offline_sync_apply_file_content\"\n | \"offline_sync_apply\"\n | \"lcm_status\"\n | \"memory_list\"\n | \"recall_timings\"\n | \"entity_list\"\n | \"maintenance_status\"\n | \"quality_status\"\n | \"trust_zones_status\"\n | \"trust_zones_records\"\n | \"review_disposition\"\n | \"trust_zones_promote\"\n | \"trust_zones_demo_seed\"\n | \"citations_observed\"\n | \"contradiction_detail\"\n | \"graph_events\"\n // Chat surface — conversational memory inspection/correction (issue #1583).\n | \"chat_message\"\n | \"chat_events\";\n\n// ---------------------------------------------------------------------------\n// Operation context — what every handler receives\n// ---------------------------------------------------------------------------\n\n/**\n * Per-call context. `service` is the facade the handler delegates to; the\n * boundary never reaches past it. `authenticatedPrincipal` is resolved by\n * the SURFACE (MCP header / HTTP identity / CLI flag) before the boundary\n * runs, so handlers stay principal-source-agnostic. `hooks` carries\n * transport-level callbacks (e.g. HTTP write-quota enforcement) that must\n * fire atomically inside the service call; surfaces that have no such hook\n * leave it undefined.\n */\nexport interface OperationContext {\n readonly service: EngramAccessService;\n readonly authenticatedPrincipal?: string;\n readonly operatorPrincipal?: string;\n readonly hooks?: OperationHooks;\n}\n\n/**\n * Transport-level callbacks a handler forwards into the service call. Kept\n * narrow on purpose: the boundary owns validation + dispatch shape, not\n * transport policy. Add fields here only when a surface genuinely needs a\n * callback the service itself consumes.\n */\nexport interface OperationHooks {\n /** HTTP write-quota gate; throws to reject the write when exhausted. */\n readonly enforceWriteQuota?: () => void | Promise<void>;\n}\n\n// ---------------------------------------------------------------------------\n// Operation spec + bound operation\n// ---------------------------------------------------------------------------\n\nexport interface OperationSpec<In, Out> {\n /** Canonical operation id; matches an {@link OperationName}. */\n readonly name: OperationName;\n readonly description: string;\n /** Zod schema validating the raw request envelope. */\n readonly schema: z.ZodType<In>;\n /** Handler invoked with the parsed input; throws EngramAccessInputError for domain faults. */\n readonly handler: (input: In, ctx: OperationContext) => Promise<Out>;\n}\n\nexport interface BoundOperation<In = unknown, Out = unknown> {\n readonly spec: OperationSpec<In, Out>;\n /** Validate the raw envelope, then invoke the handler. Throws EngramAccessInputError on any validation failure. */\n readonly run: (rawInput: unknown, ctx: OperationContext) => Promise<Out>;\n}\n\n// ---------------------------------------------------------------------------\n// Shared normalizers the boundary owns (rules 17, 28, 36, 48, 51)\n// ---------------------------------------------------------------------------\n\n/**\n * Coerce boolean-like strings at the edge (rule 36). Accepts actual booleans\n * and the string spellings clients send (\"true\"/\"false\"/\"1\"/\"0\"/\"yes\"/\"no\"/\n * \"on\"/\"off\", case-insensitive). Rejects anything else loudly — `Boolean(\"false\")`\n * would silently be `true`, which is the bug rule 36 exists to prevent.\n *\n * `undefined`/`null`/`\"\"` → `undefined`, so callers can keep treating an\n * absent flag as \"use the default\" without a separate presence check.\n */\nexport function coerceBooleanLike(value: unknown): boolean | undefined {\n if (value === undefined || value === null || value === \"\") return undefined;\n if (typeof value === \"boolean\") return value;\n if (typeof value === \"string\") {\n const lower = value.trim().toLowerCase();\n if (lower === \"true\" || lower === \"1\" || lower === \"yes\" || lower === \"on\") return true;\n if (lower === \"false\" || lower === \"0\" || lower === \"no\" || lower === \"off\") return false;\n }\n throw new EngramAccessInputError(\n `expected a boolean-like value (true|false|1|0|yes|no|on|off); got ${JSON.stringify(value)}`,\n );\n}\n\n/**\n * Coerce + validate a positive integer from a numeric string or number\n * (rule 28). Loosely-typed MCP/CLI clients send `\"5\"`; `typeof saved === \"number\"`\n * on read-back would reject it later, so we coerce at the edge and reject\n * booleans/objects loudly (`Number(true) === 1` would silently pass otherwise).\n *\n * `undefined`/`null`/`\"\"` → `undefined`.\n */\nexport function coercePositiveInteger(value: unknown, label: string): number | undefined {\n if (value === undefined || value === null || value === \"\") return undefined;\n if (typeof value === \"number\") {\n if (!Number.isFinite(value) || value <= 0 || !Number.isInteger(value)) {\n throw new EngramAccessInputError(`${label} expects a positive integer; got ${JSON.stringify(value)}`);\n }\n return value;\n }\n if (typeof value === \"string\") {\n const trimmed = value.trim();\n if (!/^[+-]?\\d+$/.test(trimmed)) {\n throw new EngramAccessInputError(`${label} expects a positive integer; got ${JSON.stringify(value)}`);\n }\n const parsed = Number(trimmed);\n if (!Number.isSafeInteger(parsed) || parsed <= 0) {\n throw new EngramAccessInputError(`${label} expects a positive integer; got ${JSON.stringify(value)}`);\n }\n return parsed;\n }\n throw new EngramAccessInputError(`${label} expects a positive integer; got ${JSON.stringify(value)}`);\n}\n\n/**\n * Expand `~` in a path-shaped input (rule 17). Node `fs` does NOT expand `~`;\n * ad-hoc regex drifts. `undefined`/`null`/`\"\"` → `undefined`.\n */\nexport function normalizeOptionalPath(value: unknown): string | undefined {\n if (value === undefined || value === null || value === \"\") return undefined;\n if (typeof value !== \"string\") {\n throw new EngramAccessInputError(`expected a path string; got ${JSON.stringify(value)}`);\n }\n return expandTildePath(value);\n}\n\n// ---------------------------------------------------------------------------\n// Error formatting — rule 51: list valid options, never silently default\n// ---------------------------------------------------------------------------\n\n/**\n * Turn a zod failure into an {@link EngramAccessInputError} whose message\n * names the offending field and — for enum/union issues — lists the valid\n * options, so the caller can correct rather than guess (rule 51).\n */\nexport function formatZodIssues(error: z.ZodError): string {\n const parts: string[] = [];\n for (const issue of error.issues) {\n // Collapse array-index paths (e.g. [\"currentContextScopes\", 1]) to\n // the field name so the message reads \"field: must be ...\" not\n // \"field.1: must be ...\".\n const hasNumeric = issue.path.some((p) => typeof p === \"number\");\n const path = hasNumeric\n ? issue.path.filter((p) => typeof p === \"string\").join(\".\") || \"(root)\"\n : issue.path.length > 0 ? issue.path.join(\".\") : \"(root)\";\n const options = enumOptionsFromIssue(issue);\n const suffix = options ? `. Valid: ${options.join(\", \")}` : \"\";\n parts.push(`${path}: ${issue.message}${suffix}`);\n }\n return parts.length > 0\n ? `request validation failed: ${parts.join(\"; \")}`\n : \"request validation failed\";\n}\n\nfunction enumOptionsFromIssue(issue: z.ZodIssue): readonly string[] | undefined {\n // zod exposes accepted enum values on the issue for ZodEnum / ZodNativeEnum\n // and on the options of invalid_union discriminators. Reading them here\n // keeps \"list valid options\" in ONE place rather than per handler.\n if (issue.code === z.ZodIssueCode.invalid_enum_value) {\n const rawOptions = (issue as { options?: unknown }).options;\n if (Array.isArray(rawOptions)) {\n return rawOptions.map((opt) => String(opt));\n }\n }\n return undefined;\n}\n\n// ---------------------------------------------------------------------------\n// Registry\n// ---------------------------------------------------------------------------\n\nconst registry = new Map<OperationName, BoundOperation>();\n\n/**\n * Register an operation. Throws if the name is already registered — duplicate\n * registration is a programming error, not a runtime input fault, so it throws\n * a plain Error (not the input-error class surfaces translate for clients).\n */\n/**\n * Error map that converts Zod's generic type-mismatch messages into\n * human-readable \"must be a <type>\" messages (rule 51). Applied at the\n * boundary chokepoint so every operation gets consistent messaging\n * without per-handler boilerplate.\n */\nconst humanReadableErrorMap: z.ZodErrorMap = (issue, ctx) => {\n if (issue.code === z.ZodIssueCode.invalid_type) {\n if (issue.received === \"undefined\") return { message: ctx.defaultError };\n // Array-element type errors — collapse to field-level message.\n if (issue.path.some((p) => typeof p === \"number\")) {\n const arrField = issue.path.filter((p) => typeof p === \"string\").join(\".\");\n return { message: `${arrField} must be an array of ${issue.expected}s` };\n }\n const fieldName = issue.path.length > 0 ? String(issue.path[issue.path.length - 1]) : \"value\";\n switch (issue.expected) {\n case \"string\": return { message: `${fieldName} must be a string` };\n case \"boolean\": return { message: `${fieldName} must be a boolean` };\n case \"number\": return { message: `${fieldName} must be a number` };\n case \"array\": return { message: `${fieldName} must be an array` };\n case \"object\": return { message: `${fieldName} must be an object` };\n default: return { message: ctx.defaultError };\n }\n }\n return { message: ctx.defaultError };\n};\n\nexport function defineOperation<In, Out>(spec: OperationSpec<In, Out>): BoundOperation<In, Out> {\n if (registry.has(spec.name)) {\n throw new Error(`access-boundary: operation already registered: ${spec.name}`);\n }\n const bound: BoundOperation<In, Out> = {\n spec,\n run: async (rawInput, ctx) => {\n const parseResult = spec.schema.safeParse(rawInput, { errorMap: humanReadableErrorMap });\n if (!parseResult.success) {\n throw new EngramAccessInputError(formatZodIssues(parseResult.error));\n }\n return spec.handler(parseResult.data, ctx);\n },\n };\n // Store under the canonical name; the cast is safe because In/Out are\n // erased at the registry boundary and recovered by callers via getOperation.\n registry.set(spec.name, bound as unknown as BoundOperation);\n return bound;\n}\n\n/** Look up a registered operation by canonical name. */\nexport function getOperation(name: OperationName): BoundOperation | undefined {\n return registry.get(name);\n}\n\n/** All registered operation names. */\nexport function listRegisteredOperations(): readonly OperationName[] {\n return [...registry.keys()];\n}\n\n/** Test-only: clear the registry so pilot definitions can be re-registered. */\nexport function __resetRegistryForTest(): void {\n registry.clear();\n}\n"],"mappings":"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","names":[]}
|
package/dist/cli.js
CHANGED
|
@@ -90,11 +90,12 @@ import {
|
|
|
90
90
|
runWorkProductStatusCliCommand,
|
|
91
91
|
runWorkProjectCliCommand,
|
|
92
92
|
runWorkTaskCliCommand
|
|
93
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-U3TRHUSJ.js";
|
|
94
94
|
import "./chunk-MC4FJXPA.js";
|
|
95
95
|
import "./chunk-LQHDIS7L.js";
|
|
96
96
|
import "./chunk-7F7Z6MOS.js";
|
|
97
97
|
import "./chunk-JJEJJ7RK.js";
|
|
98
|
+
import "./chunk-UP6MOYCB.js";
|
|
98
99
|
import "./chunk-7VFZTJ7K.js";
|
|
99
100
|
import "./chunk-HDDRVXX4.js";
|
|
100
101
|
import "./chunk-AGNBY3VG.js";
|
|
@@ -103,59 +104,58 @@ import "./chunk-OZKVVUJB.js";
|
|
|
103
104
|
import "./chunk-2DL3OFLD.js";
|
|
104
105
|
import "./chunk-G4IAEX6D.js";
|
|
105
106
|
import "./chunk-2BFLDH5F.js";
|
|
106
|
-
import "./chunk-UP6MOYCB.js";
|
|
107
107
|
import "./chunk-765K3SAT.js";
|
|
108
|
+
import "./chunk-WIWPSQYU.js";
|
|
109
|
+
import "./chunk-EEC4PCG5.js";
|
|
108
110
|
import "./chunk-PYIFUBRK.js";
|
|
109
111
|
import "./chunk-HOJZMQ4J.js";
|
|
110
112
|
import "./chunk-2PRQG7PV.js";
|
|
111
|
-
import "./chunk-
|
|
113
|
+
import "./chunk-LU7ATMRV.js";
|
|
114
|
+
import "./chunk-J2QYB2D5.js";
|
|
112
115
|
import "./chunk-LZZNTPLR.js";
|
|
113
|
-
import "./chunk-EEC4PCG5.js";
|
|
114
116
|
import "./chunk-WMWVO45V.js";
|
|
117
|
+
import "./chunk-KJTKLXTH.js";
|
|
115
118
|
import "./chunk-D6RIFG4O.js";
|
|
116
119
|
import "./chunk-JCK7V6SN.js";
|
|
117
|
-
import "./chunk-
|
|
118
|
-
import "./chunk-SFNQDXXL.js";
|
|
119
|
-
import "./chunk-KJTKLXTH.js";
|
|
120
|
+
import "./chunk-GQL52GQ5.js";
|
|
120
121
|
import "./chunk-CKITWVWJ.js";
|
|
121
122
|
import "./chunk-OUELRE5E.js";
|
|
122
|
-
import "./chunk-
|
|
123
|
+
import "./chunk-OTMAYEY5.js";
|
|
123
124
|
import "./chunk-2F6NP3NT.js";
|
|
124
125
|
import "./chunk-TERNBNJB.js";
|
|
125
|
-
import "./chunk-N4ZA2I7M.js";
|
|
126
126
|
import "./chunk-QRDOSYOR.js";
|
|
127
|
-
import "./chunk-
|
|
128
|
-
import "./chunk-
|
|
129
|
-
import "./chunk-TGQ2NTWH.js";
|
|
127
|
+
import "./chunk-VFHDUFH5.js";
|
|
128
|
+
import "./chunk-44YXWE35.js";
|
|
130
129
|
import "./chunk-WRBDUNSW.js";
|
|
131
130
|
import "./chunk-ZRWB5D4H.js";
|
|
132
131
|
import "./chunk-GY3SKOS4.js";
|
|
133
|
-
import "./chunk-SFQ6QNL7.js";
|
|
134
132
|
import "./chunk-DANV2HTH.js";
|
|
133
|
+
import "./chunk-TGQ2NTWH.js";
|
|
134
|
+
import "./chunk-SFQ6QNL7.js";
|
|
135
|
+
import "./chunk-3T74IZB3.js";
|
|
135
136
|
import "./chunk-33JBK2XP.js";
|
|
136
|
-
import "./chunk-
|
|
137
|
-
import "./chunk-
|
|
138
|
-
import "./chunk-
|
|
139
|
-
import "./chunk-
|
|
137
|
+
import "./chunk-27CQIO7T.js";
|
|
138
|
+
import "./chunk-XNWLD3RR.js";
|
|
139
|
+
import "./chunk-BKTC7JCA.js";
|
|
140
|
+
import "./chunk-L42FA4BU.js";
|
|
140
141
|
import "./chunk-KFY3SGN7.js";
|
|
141
|
-
import "./chunk-3T74IZB3.js";
|
|
142
142
|
import "./chunk-CMTINOFS.js";
|
|
143
143
|
import "./chunk-HL4DB7TO.js";
|
|
144
144
|
import "./chunk-TQNRI55H.js";
|
|
145
145
|
import "./chunk-6GUG4YNM.js";
|
|
146
|
-
import "./chunk-JXS5PDQ7.js";
|
|
147
146
|
import "./chunk-AV5ZEH4M.js";
|
|
147
|
+
import "./chunk-JXS5PDQ7.js";
|
|
148
|
+
import "./chunk-3PY7VHV7.js";
|
|
148
149
|
import "./chunk-BVKCV2ZY.js";
|
|
149
150
|
import "./chunk-ZCWIH4LH.js";
|
|
150
|
-
import "./chunk-
|
|
151
|
-
import "./chunk-
|
|
151
|
+
import "./chunk-OKTXM5H4.js";
|
|
152
|
+
import "./chunk-7XH7VJN4.js";
|
|
152
153
|
import "./chunk-FZZ2QTJI.js";
|
|
153
|
-
import "./chunk-
|
|
154
|
-
import "./chunk-AUDJPF4N.js";
|
|
154
|
+
import "./chunk-EZ25VE3G.js";
|
|
155
155
|
import "./chunk-44442YCH.js";
|
|
156
|
+
import "./chunk-AUDJPF4N.js";
|
|
156
157
|
import "./chunk-Y4Z4I6WK.js";
|
|
157
158
|
import "./chunk-LMDRGRJ2.js";
|
|
158
|
-
import "./chunk-OKTXM5H4.js";
|
|
159
159
|
import "./chunk-3UXOZBHV.js";
|
|
160
160
|
import "./chunk-7FL4CNPV.js";
|
|
161
161
|
import "./chunk-YBPYIAA5.js";
|
|
@@ -168,32 +168,34 @@ import "./chunk-OO42R444.js";
|
|
|
168
168
|
import "./chunk-K6MV3TRQ.js";
|
|
169
169
|
import "./chunk-LBJBNWS2.js";
|
|
170
170
|
import "./chunk-OADWQ5CR.js";
|
|
171
|
-
import "./chunk-
|
|
171
|
+
import "./chunk-U5HD7BB2.js";
|
|
172
172
|
import "./chunk-7WV3F5DQ.js";
|
|
173
173
|
import "./chunk-SEDEKFYQ.js";
|
|
174
|
-
import "./chunk-
|
|
174
|
+
import "./chunk-AU7Q3LSC.js";
|
|
175
|
+
import "./chunk-42NQ7AVG.js";
|
|
175
176
|
import "./chunk-TMSXWOBZ.js";
|
|
176
177
|
import "./chunk-J64TK33U.js";
|
|
177
178
|
import "./chunk-RSUYKGGZ.js";
|
|
178
|
-
import "./chunk-42NQ7AVG.js";
|
|
179
179
|
import "./chunk-7RXCMVFQ.js";
|
|
180
|
-
import "./chunk-
|
|
180
|
+
import "./chunk-RFZW7NID.js";
|
|
181
181
|
import "./chunk-D24OXEPB.js";
|
|
182
|
-
import "./chunk-
|
|
183
|
-
import "./chunk-
|
|
184
|
-
import "./chunk-
|
|
182
|
+
import "./chunk-5RUE3GHQ.js";
|
|
183
|
+
import "./chunk-TECYUPFB.js";
|
|
184
|
+
import "./chunk-6Y4JTNX7.js";
|
|
185
|
+
import "./chunk-27TJRC2Y.js";
|
|
185
186
|
import "./chunk-YF6FMLBT.js";
|
|
187
|
+
import "./chunk-ZQNCHPTZ.js";
|
|
186
188
|
import "./chunk-EEKDRAWX.js";
|
|
187
189
|
import "./chunk-DJECGBBM.js";
|
|
188
190
|
import "./chunk-35NN3ZFA.js";
|
|
191
|
+
import "./chunk-FTYDWKO6.js";
|
|
189
192
|
import "./chunk-T4WDJPEZ.js";
|
|
190
|
-
import "./chunk-
|
|
191
|
-
import "./chunk-
|
|
192
|
-
import "./chunk-OAREUC7N.js";
|
|
193
|
+
import "./chunk-ZI3YYOOV.js";
|
|
194
|
+
import "./chunk-C2DDH5UN.js";
|
|
193
195
|
import "./chunk-GDASG7NC.js";
|
|
194
196
|
import "./chunk-GDB4J2H3.js";
|
|
195
|
-
import "./chunk-M5QKGHCR.js";
|
|
196
197
|
import "./chunk-64SE4X5G.js";
|
|
198
|
+
import "./chunk-M5QKGHCR.js";
|
|
197
199
|
import "./chunk-VQ7B2Q6M.js";
|
|
198
200
|
import "./chunk-ERA5RSMZ.js";
|
|
199
201
|
import "./chunk-JGSKJHF7.js";
|
|
@@ -205,19 +207,22 @@ import "./chunk-H7XKCNR6.js";
|
|
|
205
207
|
import "./chunk-2KK5WNQB.js";
|
|
206
208
|
import "./chunk-SOBJ6NEY.js";
|
|
207
209
|
import "./chunk-6MMONPHM.js";
|
|
210
|
+
import "./chunk-ICP53SKG.js";
|
|
211
|
+
import "./chunk-AQEJKOKI.js";
|
|
212
|
+
import "./chunk-6HMYUWXR.js";
|
|
208
213
|
import "./chunk-BAVVI5GP.js";
|
|
209
|
-
import "./chunk-
|
|
210
|
-
import "./chunk-
|
|
214
|
+
import "./chunk-7OSULYN2.js";
|
|
215
|
+
import "./chunk-PSNMICC2.js";
|
|
216
|
+
import "./chunk-K2I3AWBR.js";
|
|
211
217
|
import "./chunk-DMKMQTBH.js";
|
|
212
218
|
import "./chunk-CYEPCZN5.js";
|
|
213
219
|
import "./chunk-XG4NBBRW.js";
|
|
214
220
|
import "./chunk-ZZMRXJFY.js";
|
|
215
|
-
import "./chunk-HM6UJPPO.js";
|
|
216
|
-
import "./chunk-K2I3AWBR.js";
|
|
217
221
|
import "./chunk-AER6MT24.js";
|
|
222
|
+
import "./chunk-HM6UJPPO.js";
|
|
218
223
|
import "./chunk-CINZGPSJ.js";
|
|
219
224
|
import "./chunk-EGGE52UU.js";
|
|
220
|
-
import "./chunk-
|
|
225
|
+
import "./chunk-MJE4XV4A.js";
|
|
221
226
|
import "./chunk-DCWIQFNA.js";
|
|
222
227
|
import "./chunk-XBZQRZ6G.js";
|
|
223
228
|
import "./chunk-KCQA46NR.js";
|
|
@@ -225,33 +230,31 @@ import "./chunk-SJHM6I4J.js";
|
|
|
225
230
|
import "./chunk-MYNRJGOY.js";
|
|
226
231
|
import "./chunk-WU46YPY6.js";
|
|
227
232
|
import "./chunk-EIR5VLIH.js";
|
|
228
|
-
import "./chunk-ICP53SKG.js";
|
|
229
|
-
import "./chunk-AQEJKOKI.js";
|
|
230
|
-
import "./chunk-6HMYUWXR.js";
|
|
231
233
|
import "./chunk-TQT3USCG.js";
|
|
232
234
|
import "./chunk-EI6V5UXY.js";
|
|
233
235
|
import "./chunk-PNLCEFE4.js";
|
|
234
236
|
import "./chunk-O75CRYGF.js";
|
|
235
|
-
import "./chunk-K5LLP4CY.js";
|
|
236
237
|
import "./chunk-QDW3E4RD.js";
|
|
238
|
+
import "./chunk-K5LLP4CY.js";
|
|
237
239
|
import "./chunk-3ONXXHQO.js";
|
|
238
240
|
import "./chunk-ODPLEWB6.js";
|
|
241
|
+
import "./chunk-ZY2MNJR6.js";
|
|
239
242
|
import "./chunk-EHQ5HO5T.js";
|
|
240
243
|
import "./chunk-2LSZVONP.js";
|
|
241
244
|
import "./chunk-DEUNUKTD.js";
|
|
242
|
-
import "./chunk-
|
|
243
|
-
import "./chunk-
|
|
244
|
-
import "./chunk-
|
|
245
|
-
import "./chunk-M7XQSUBB.js";
|
|
245
|
+
import "./chunk-KYC3RLYJ.js";
|
|
246
|
+
import "./chunk-6QODJKOV.js";
|
|
247
|
+
import "./chunk-EGLUVV6B.js";
|
|
246
248
|
import "./chunk-L2B3EE7B.js";
|
|
249
|
+
import "./chunk-M7XQSUBB.js";
|
|
247
250
|
import "./chunk-5UZXUTVO.js";
|
|
248
251
|
import "./chunk-5GPPACXK.js";
|
|
249
|
-
import "./chunk-LTJAMRGI.js";
|
|
250
252
|
import "./chunk-TKZ3AL5V.js";
|
|
251
253
|
import "./chunk-6CIAGZ6X.js";
|
|
254
|
+
import "./chunk-SVOZFLIQ.js";
|
|
255
|
+
import "./chunk-LTJAMRGI.js";
|
|
252
256
|
import "./chunk-J6A3CX5N.js";
|
|
253
257
|
import "./chunk-DQC3ZZYM.js";
|
|
254
|
-
import "./chunk-SVOZFLIQ.js";
|
|
255
258
|
import "./chunk-JS2HKKOK.js";
|
|
256
259
|
import "./chunk-AWJ2FHCF.js";
|
|
257
260
|
import "./chunk-42JKGUFJ.js";
|
|
@@ -263,16 +266,25 @@ import "./chunk-DM2T26WE.js";
|
|
|
263
266
|
import "./chunk-LDXUBPMO.js";
|
|
264
267
|
import "./chunk-YTU7WKYN.js";
|
|
265
268
|
import "./chunk-AAD2ZS6P.js";
|
|
269
|
+
import "./chunk-G7D6GZ5J.js";
|
|
266
270
|
import "./chunk-VF4XKTX3.js";
|
|
267
271
|
import "./chunk-W5H6ZRPT.js";
|
|
268
|
-
import "./chunk-G7D6GZ5J.js";
|
|
269
272
|
import "./chunk-VUA4S7P6.js";
|
|
270
273
|
import "./chunk-IQVQJJL7.js";
|
|
271
274
|
import "./chunk-L2EXJQJP.js";
|
|
272
275
|
import "./chunk-VL7DP3OW.js";
|
|
273
276
|
import "./chunk-RGMVMVMF.js";
|
|
274
277
|
import "./chunk-N7RWREIQ.js";
|
|
275
|
-
import "./chunk-
|
|
278
|
+
import "./chunk-OUXPVWTZ.js";
|
|
279
|
+
import "./chunk-J4EB7DNW.js";
|
|
280
|
+
import "./chunk-WEHSQBFR.js";
|
|
281
|
+
import "./chunk-437S3G37.js";
|
|
282
|
+
import "./chunk-GWTFLF2P.js";
|
|
283
|
+
import "./chunk-UKJAGEXH.js";
|
|
284
|
+
import "./chunk-FP2373TW.js";
|
|
285
|
+
import "./chunk-Z2YFLXHU.js";
|
|
286
|
+
import "./chunk-I4WBNM3M.js";
|
|
287
|
+
import "./chunk-SOAU2OE2.js";
|
|
276
288
|
import "./chunk-PE6XR4GG.js";
|
|
277
289
|
import "./chunk-U3PN77QT.js";
|
|
278
290
|
import "./chunk-VSF7AAGE.js";
|
|
@@ -282,21 +294,7 @@ import "./chunk-5GKPFL3S.js";
|
|
|
282
294
|
import "./chunk-4DJQYKMN.js";
|
|
283
295
|
import "./chunk-EYIEWJNI.js";
|
|
284
296
|
import "./chunk-JUC24CTX.js";
|
|
285
|
-
import "./chunk-6MKAMLQL.js";
|
|
286
|
-
import "./chunk-JAKIDQB2.js";
|
|
287
|
-
import "./chunk-TBBDFYXW.js";
|
|
288
|
-
import "./chunk-ZBJMUXZH.js";
|
|
289
297
|
import "./chunk-NU3CSQ4H.js";
|
|
290
|
-
import "./chunk-FLVL4L3L.js";
|
|
291
|
-
import "./chunk-WEHSQBFR.js";
|
|
292
|
-
import "./chunk-437S3G37.js";
|
|
293
|
-
import "./chunk-J4EB7DNW.js";
|
|
294
|
-
import "./chunk-GWTFLF2P.js";
|
|
295
|
-
import "./chunk-UKJAGEXH.js";
|
|
296
|
-
import "./chunk-FP2373TW.js";
|
|
297
|
-
import "./chunk-Z2YFLXHU.js";
|
|
298
|
-
import "./chunk-I4WBNM3M.js";
|
|
299
|
-
import "./chunk-SOAU2OE2.js";
|
|
300
298
|
import "./chunk-X64YLC24.js";
|
|
301
299
|
import "./chunk-UI3NYK34.js";
|
|
302
300
|
import "./chunk-GCGJW34D.js";
|
|
@@ -304,13 +302,18 @@ import "./chunk-J2HSAU72.js";
|
|
|
304
302
|
import "./chunk-A6XUJE5D.js";
|
|
305
303
|
import "./chunk-P7FMDTKL.js";
|
|
306
304
|
import "./chunk-VS2IYZRU.js";
|
|
305
|
+
import "./chunk-6MKAMLQL.js";
|
|
306
|
+
import "./chunk-JAKIDQB2.js";
|
|
307
|
+
import "./chunk-TBBDFYXW.js";
|
|
308
|
+
import "./chunk-ZBJMUXZH.js";
|
|
309
|
+
import "./chunk-VFUEZZBS.js";
|
|
307
310
|
import "./chunk-PVGDJXVK.js";
|
|
308
311
|
import "./chunk-A2IYSXDQ.js";
|
|
309
312
|
import "./chunk-LPSF4OQH.js";
|
|
310
313
|
import "./chunk-TVVEYCNW.js";
|
|
311
314
|
import "./chunk-RFYAYKTD.js";
|
|
312
315
|
import "./chunk-LBLXEFWK.js";
|
|
313
|
-
import "./chunk-
|
|
316
|
+
import "./chunk-RANHFI3P.js";
|
|
314
317
|
import "./chunk-PZ5AY32C.js";
|
|
315
318
|
export {
|
|
316
319
|
emitConnectorsRunCliResult,
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CompoundingEngine,
|
|
3
3
|
defaultTierMigrationCycleBudget
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-YOELDDBF.js";
|
|
5
5
|
import "../chunk-JRZV3767.js";
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-M7XQSUBB.js";
|
|
6
|
+
import "../chunk-EGLUVV6B.js";
|
|
8
7
|
import "../chunk-L2B3EE7B.js";
|
|
8
|
+
import "../chunk-M7XQSUBB.js";
|
|
9
9
|
import "../chunk-5UZXUTVO.js";
|
|
10
10
|
import "../chunk-5GPPACXK.js";
|
|
11
|
-
import "../chunk-LTJAMRGI.js";
|
|
12
11
|
import "../chunk-TKZ3AL5V.js";
|
|
13
12
|
import "../chunk-6CIAGZ6X.js";
|
|
13
|
+
import "../chunk-SVOZFLIQ.js";
|
|
14
|
+
import "../chunk-LTJAMRGI.js";
|
|
14
15
|
import "../chunk-J6A3CX5N.js";
|
|
15
16
|
import "../chunk-DQC3ZZYM.js";
|
|
16
|
-
import "../chunk-SVOZFLIQ.js";
|
|
17
17
|
import "../chunk-JS2HKKOK.js";
|
|
18
18
|
import "../chunk-AWJ2FHCF.js";
|
|
19
19
|
import "../chunk-42JKGUFJ.js";
|
|
@@ -25,9 +25,9 @@ import "../chunk-DM2T26WE.js";
|
|
|
25
25
|
import "../chunk-LDXUBPMO.js";
|
|
26
26
|
import "../chunk-YTU7WKYN.js";
|
|
27
27
|
import "../chunk-AAD2ZS6P.js";
|
|
28
|
+
import "../chunk-G7D6GZ5J.js";
|
|
28
29
|
import "../chunk-VF4XKTX3.js";
|
|
29
30
|
import "../chunk-W5H6ZRPT.js";
|
|
30
|
-
import "../chunk-G7D6GZ5J.js";
|
|
31
31
|
import "../chunk-VUA4S7P6.js";
|
|
32
32
|
import "../chunk-IQVQJJL7.js";
|
|
33
33
|
import "../chunk-L2EXJQJP.js";
|
|
@@ -41,13 +41,13 @@ import "../chunk-5GKPFL3S.js";
|
|
|
41
41
|
import "../chunk-4DJQYKMN.js";
|
|
42
42
|
import "../chunk-EYIEWJNI.js";
|
|
43
43
|
import "../chunk-JUC24CTX.js";
|
|
44
|
-
import "../chunk-6MKAMLQL.js";
|
|
45
|
-
import "../chunk-JAKIDQB2.js";
|
|
46
44
|
import "../chunk-NU3CSQ4H.js";
|
|
47
45
|
import "../chunk-J2HSAU72.js";
|
|
48
46
|
import "../chunk-A6XUJE5D.js";
|
|
49
47
|
import "../chunk-P7FMDTKL.js";
|
|
50
48
|
import "../chunk-VS2IYZRU.js";
|
|
49
|
+
import "../chunk-6MKAMLQL.js";
|
|
50
|
+
import "../chunk-JAKIDQB2.js";
|
|
51
51
|
import "../chunk-PZ5AY32C.js";
|
|
52
52
|
export {
|
|
53
53
|
CompoundingEngine,
|
package/dist/config.js
CHANGED
|
@@ -16,8 +16,6 @@ import "./chunk-5GKPFL3S.js";
|
|
|
16
16
|
import "./chunk-4DJQYKMN.js";
|
|
17
17
|
import "./chunk-EYIEWJNI.js";
|
|
18
18
|
import "./chunk-JUC24CTX.js";
|
|
19
|
-
import "./chunk-6MKAMLQL.js";
|
|
20
|
-
import "./chunk-JAKIDQB2.js";
|
|
21
19
|
import "./chunk-NU3CSQ4H.js";
|
|
22
20
|
import "./chunk-X64YLC24.js";
|
|
23
21
|
import "./chunk-UI3NYK34.js";
|
|
@@ -26,6 +24,8 @@ import "./chunk-J2HSAU72.js";
|
|
|
26
24
|
import "./chunk-A6XUJE5D.js";
|
|
27
25
|
import "./chunk-P7FMDTKL.js";
|
|
28
26
|
import "./chunk-VS2IYZRU.js";
|
|
27
|
+
import "./chunk-6MKAMLQL.js";
|
|
28
|
+
import "./chunk-JAKIDQB2.js";
|
|
29
29
|
import "./chunk-PZ5AY32C.js";
|
|
30
30
|
export {
|
|
31
31
|
DEFAULT_REASONING_MODEL,
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runCodexMaterialize,
|
|
3
3
|
runPostConsolidationMaterialize
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-YRZMCPC5.js";
|
|
5
5
|
import "../chunk-UUH4YQOF.js";
|
|
6
6
|
import "../chunk-3UXOZBHV.js";
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-M7XQSUBB.js";
|
|
7
|
+
import "../chunk-EGLUVV6B.js";
|
|
9
8
|
import "../chunk-L2B3EE7B.js";
|
|
9
|
+
import "../chunk-M7XQSUBB.js";
|
|
10
10
|
import "../chunk-5UZXUTVO.js";
|
|
11
11
|
import "../chunk-5GPPACXK.js";
|
|
12
|
-
import "../chunk-LTJAMRGI.js";
|
|
13
12
|
import "../chunk-TKZ3AL5V.js";
|
|
14
13
|
import "../chunk-6CIAGZ6X.js";
|
|
14
|
+
import "../chunk-SVOZFLIQ.js";
|
|
15
|
+
import "../chunk-LTJAMRGI.js";
|
|
15
16
|
import "../chunk-J6A3CX5N.js";
|
|
16
17
|
import "../chunk-DQC3ZZYM.js";
|
|
17
|
-
import "../chunk-SVOZFLIQ.js";
|
|
18
18
|
import "../chunk-JS2HKKOK.js";
|
|
19
19
|
import "../chunk-AWJ2FHCF.js";
|
|
20
20
|
import "../chunk-42JKGUFJ.js";
|
|
@@ -26,9 +26,9 @@ import "../chunk-DM2T26WE.js";
|
|
|
26
26
|
import "../chunk-LDXUBPMO.js";
|
|
27
27
|
import "../chunk-YTU7WKYN.js";
|
|
28
28
|
import "../chunk-AAD2ZS6P.js";
|
|
29
|
+
import "../chunk-G7D6GZ5J.js";
|
|
29
30
|
import "../chunk-VF4XKTX3.js";
|
|
30
31
|
import "../chunk-W5H6ZRPT.js";
|
|
31
|
-
import "../chunk-G7D6GZ5J.js";
|
|
32
32
|
import "../chunk-VUA4S7P6.js";
|
|
33
33
|
import "../chunk-IQVQJJL7.js";
|
|
34
34
|
import "../chunk-L2EXJQJP.js";
|
|
@@ -42,13 +42,13 @@ import "../chunk-5GKPFL3S.js";
|
|
|
42
42
|
import "../chunk-4DJQYKMN.js";
|
|
43
43
|
import "../chunk-EYIEWJNI.js";
|
|
44
44
|
import "../chunk-JUC24CTX.js";
|
|
45
|
-
import "../chunk-6MKAMLQL.js";
|
|
46
|
-
import "../chunk-JAKIDQB2.js";
|
|
47
45
|
import "../chunk-NU3CSQ4H.js";
|
|
48
46
|
import "../chunk-J2HSAU72.js";
|
|
49
47
|
import "../chunk-A6XUJE5D.js";
|
|
50
48
|
import "../chunk-P7FMDTKL.js";
|
|
51
49
|
import "../chunk-VS2IYZRU.js";
|
|
50
|
+
import "../chunk-6MKAMLQL.js";
|
|
51
|
+
import "../chunk-JAKIDQB2.js";
|
|
52
52
|
import "../chunk-PZ5AY32C.js";
|
|
53
53
|
export {
|
|
54
54
|
runCodexMaterialize,
|
package/dist/connectors/index.js
CHANGED
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
import "../chunk-E2SPGGUI.js";
|
|
27
27
|
import {
|
|
28
28
|
runCodexMaterialize
|
|
29
|
-
} from "../chunk-
|
|
29
|
+
} from "../chunk-YRZMCPC5.js";
|
|
30
30
|
import {
|
|
31
31
|
MATERIALIZE_VERSION,
|
|
32
32
|
SENTINEL_FILE,
|
|
@@ -48,17 +48,17 @@ import {
|
|
|
48
48
|
getRegistryPath
|
|
49
49
|
} from "../chunk-K6MV3TRQ.js";
|
|
50
50
|
import "../chunk-O75CRYGF.js";
|
|
51
|
-
import "../chunk-
|
|
52
|
-
import "../chunk-M7XQSUBB.js";
|
|
51
|
+
import "../chunk-EGLUVV6B.js";
|
|
53
52
|
import "../chunk-L2B3EE7B.js";
|
|
53
|
+
import "../chunk-M7XQSUBB.js";
|
|
54
54
|
import "../chunk-5UZXUTVO.js";
|
|
55
55
|
import "../chunk-5GPPACXK.js";
|
|
56
|
-
import "../chunk-LTJAMRGI.js";
|
|
57
56
|
import "../chunk-TKZ3AL5V.js";
|
|
58
57
|
import "../chunk-6CIAGZ6X.js";
|
|
58
|
+
import "../chunk-SVOZFLIQ.js";
|
|
59
|
+
import "../chunk-LTJAMRGI.js";
|
|
59
60
|
import "../chunk-J6A3CX5N.js";
|
|
60
61
|
import "../chunk-DQC3ZZYM.js";
|
|
61
|
-
import "../chunk-SVOZFLIQ.js";
|
|
62
62
|
import "../chunk-JS2HKKOK.js";
|
|
63
63
|
import "../chunk-AWJ2FHCF.js";
|
|
64
64
|
import "../chunk-42JKGUFJ.js";
|
|
@@ -70,9 +70,9 @@ import "../chunk-DM2T26WE.js";
|
|
|
70
70
|
import "../chunk-LDXUBPMO.js";
|
|
71
71
|
import "../chunk-YTU7WKYN.js";
|
|
72
72
|
import "../chunk-AAD2ZS6P.js";
|
|
73
|
+
import "../chunk-G7D6GZ5J.js";
|
|
73
74
|
import "../chunk-VF4XKTX3.js";
|
|
74
75
|
import "../chunk-W5H6ZRPT.js";
|
|
75
|
-
import "../chunk-G7D6GZ5J.js";
|
|
76
76
|
import "../chunk-VUA4S7P6.js";
|
|
77
77
|
import "../chunk-IQVQJJL7.js";
|
|
78
78
|
import "../chunk-L2EXJQJP.js";
|
|
@@ -89,13 +89,13 @@ import "../chunk-5GKPFL3S.js";
|
|
|
89
89
|
import "../chunk-4DJQYKMN.js";
|
|
90
90
|
import "../chunk-EYIEWJNI.js";
|
|
91
91
|
import "../chunk-JUC24CTX.js";
|
|
92
|
-
import "../chunk-6MKAMLQL.js";
|
|
93
|
-
import "../chunk-JAKIDQB2.js";
|
|
94
92
|
import "../chunk-NU3CSQ4H.js";
|
|
95
93
|
import "../chunk-J2HSAU72.js";
|
|
96
94
|
import "../chunk-A6XUJE5D.js";
|
|
97
95
|
import "../chunk-P7FMDTKL.js";
|
|
98
96
|
import "../chunk-VS2IYZRU.js";
|
|
97
|
+
import "../chunk-6MKAMLQL.js";
|
|
98
|
+
import "../chunk-JAKIDQB2.js";
|
|
99
99
|
import "../chunk-PZ5AY32C.js";
|
|
100
100
|
export {
|
|
101
101
|
MARKETPLACE_MANIFEST_FILENAME,
|