@remnic/core 9.17.0 → 9.17.1
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 +2 -2
- package/dist/access-boundary.js +2 -2
- package/dist/access-cli.js +8 -8
- package/dist/access-http.js +6 -6
- package/dist/access-identity-continuity-surface.js +2 -2
- package/dist/access-lcm-surface.js +2 -2
- package/dist/access-mcp.js +5 -5
- package/dist/access-namespace-preflight.js +2 -2
- package/dist/access-observe-write-surface.js +2 -2
- package/dist/access-operations-batch.js +3 -3
- package/dist/access-operations.d.ts +3 -3
- package/dist/access-operations.js +4 -4
- package/dist/access-recall-concurrency.js +2 -2
- package/dist/access-recall-response.js +2 -2
- package/dist/access-recall-surface.js +2 -2
- package/dist/access-schema.d.ts +76 -76
- package/dist/access-service.js +2 -2
- package/dist/{chunk-UH7VNQ7O.js → chunk-52EFQMQC.js} +2 -2
- package/dist/{chunk-GEDBTSYU.js → chunk-7O2C2OOF.js} +4 -4
- package/dist/{chunk-OXT5TQDS.js → chunk-B6P3QDBF.js} +2 -2
- package/dist/{chunk-TUNI4GB3.js → chunk-BGBPDAIN.js} +2 -2
- package/dist/{chunk-TXXP7WAM.js → chunk-KQED7RCV.js} +4 -4
- package/dist/{chunk-M6TZQDTX.js → chunk-VZC7ORJE.js} +2 -2
- package/dist/{chunk-ANGUOE2N.js → chunk-WIUYMCPL.js} +2 -2
- package/dist/{chunk-DETNBTZS.js → chunk-XSBUROEB.js} +20 -4
- package/dist/chunk-XSBUROEB.js.map +1 -0
- package/dist/cli.js +7 -7
- package/dist/index.d.ts +404 -404
- package/dist/index.js +8 -8
- package/dist/offline-sync-impression-drain.js +1 -1
- package/dist/orchestrator.js +8 -8
- package/dist/schemas.d.ts +76 -76
- package/dist/shared-context/manager.d.ts +8 -8
- package/dist/transfer/types.d.ts +66 -66
- package/package.json +2 -2
- package/src/offline-sync-impression-drain.test.ts +54 -0
- package/src/offline-sync-impression-drain.ts +35 -3
- package/dist/chunk-DETNBTZS.js.map +0 -1
- /package/dist/{chunk-UH7VNQ7O.js.map → chunk-52EFQMQC.js.map} +0 -0
- /package/dist/{chunk-GEDBTSYU.js.map → chunk-7O2C2OOF.js.map} +0 -0
- /package/dist/{chunk-OXT5TQDS.js.map → chunk-B6P3QDBF.js.map} +0 -0
- /package/dist/{chunk-TUNI4GB3.js.map → chunk-BGBPDAIN.js.map} +0 -0
- /package/dist/{chunk-TXXP7WAM.js.map → chunk-KQED7RCV.js.map} +0 -0
- /package/dist/{chunk-M6TZQDTX.js.map → chunk-VZC7ORJE.js.map} +0 -0
- /package/dist/{chunk-ANGUOE2N.js.map → chunk-WIUYMCPL.js.map} +0 -0
|
@@ -210,7 +210,7 @@ import {
|
|
|
210
210
|
} from "./chunk-BCNVNUQG.js";
|
|
211
211
|
import {
|
|
212
212
|
EngramAccessHttpServer
|
|
213
|
-
} from "./chunk-
|
|
213
|
+
} from "./chunk-7O2C2OOF.js";
|
|
214
214
|
import {
|
|
215
215
|
WearablesInputError
|
|
216
216
|
} from "./chunk-V7IZKJI3.js";
|
|
@@ -223,13 +223,13 @@ import {
|
|
|
223
223
|
createProductionChatLlmAdapter,
|
|
224
224
|
loadChatSession,
|
|
225
225
|
sessionBelongsToPrincipal
|
|
226
|
-
} from "./chunk-
|
|
226
|
+
} from "./chunk-B6P3QDBF.js";
|
|
227
227
|
import {
|
|
228
228
|
getAbstractionNodeStoreStatus
|
|
229
229
|
} from "./chunk-OADWQ5CR.js";
|
|
230
230
|
import {
|
|
231
231
|
EngramAccessService
|
|
232
|
-
} from "./chunk-
|
|
232
|
+
} from "./chunk-WIUYMCPL.js";
|
|
233
233
|
import {
|
|
234
234
|
WorkStorage
|
|
235
235
|
} from "./chunk-GDB4J2H3.js";
|
|
@@ -7650,4 +7650,4 @@ export {
|
|
|
7650
7650
|
listMemoryMarkdownFilePaths,
|
|
7651
7651
|
registerCli
|
|
7652
7652
|
};
|
|
7653
|
-
//# sourceMappingURL=chunk-
|
|
7653
|
+
//# sourceMappingURL=chunk-KQED7RCV.js.map
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
DELTA_SUBCOMMANDS,
|
|
8
8
|
defineOperation,
|
|
9
9
|
isCodegraphToolName
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-WIUYMCPL.js";
|
|
11
11
|
import {
|
|
12
12
|
serializeMutations,
|
|
13
13
|
withHeldFileLock
|
|
@@ -1805,4 +1805,4 @@ export {
|
|
|
1805
1805
|
codegraphIngestTracesOperation,
|
|
1806
1806
|
REGISTERED_OPERATIONS
|
|
1807
1807
|
};
|
|
1808
|
-
//# sourceMappingURL=chunk-
|
|
1808
|
+
//# sourceMappingURL=chunk-VZC7ORJE.js.map
|
|
@@ -58,7 +58,7 @@ import {
|
|
|
58
58
|
} from "./chunk-6HMYUWXR.js";
|
|
59
59
|
import {
|
|
60
60
|
offlineSyncStorageForSnapshot
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-XSBUROEB.js";
|
|
62
62
|
import {
|
|
63
63
|
combineNamespaces,
|
|
64
64
|
defaultGitInvoker,
|
|
@@ -12385,4 +12385,4 @@ export {
|
|
|
12385
12385
|
EngramAccessService,
|
|
12386
12386
|
AccessAdminOpsSurface
|
|
12387
12387
|
};
|
|
12388
|
-
//# sourceMappingURL=chunk-
|
|
12388
|
+
//# sourceMappingURL=chunk-WIUYMCPL.js.map
|
|
@@ -8,6 +8,9 @@ import {
|
|
|
8
8
|
drainPendingLifecycleForSyncOrThrow,
|
|
9
9
|
drainPendingLifecycleLedgerForSync
|
|
10
10
|
} from "./chunk-XKGPIWGI.js";
|
|
11
|
+
import {
|
|
12
|
+
namespaceIdentityFromToken
|
|
13
|
+
} from "./chunk-EGGE52UU.js";
|
|
11
14
|
import {
|
|
12
15
|
assertPathInsideRoot,
|
|
13
16
|
pathIsInside
|
|
@@ -15,6 +18,9 @@ import {
|
|
|
15
18
|
import {
|
|
16
19
|
displayErrorDetail
|
|
17
20
|
} from "./chunk-RL6NEVXT.js";
|
|
21
|
+
import {
|
|
22
|
+
isSafeRouteNamespace
|
|
23
|
+
} from "./chunk-U3PN77QT.js";
|
|
18
24
|
import {
|
|
19
25
|
isErrnoCode
|
|
20
26
|
} from "./chunk-5UZXUTVO.js";
|
|
@@ -54,7 +60,13 @@ async function getOfflineSyncStorage(orchestrator, namespace) {
|
|
|
54
60
|
if (path.resolve(storage.dir) === memoryRoot && orchestrator.listOfflineSyncNamespaces) {
|
|
55
61
|
const drained = /* @__PURE__ */ new Set([memoryRoot]);
|
|
56
62
|
for (const ns of await orchestrator.listOfflineSyncNamespaces()) {
|
|
57
|
-
|
|
63
|
+
let nsStorage;
|
|
64
|
+
try {
|
|
65
|
+
nsStorage = await orchestrator.getStorage(ns);
|
|
66
|
+
} catch (err) {
|
|
67
|
+
log.debug(`offline-sync root drain: skipping namespace ${ns} (non-fatal): ${err}`);
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
58
70
|
const nsDir = path.resolve(nsStorage.dir);
|
|
59
71
|
if (drained.has(nsDir)) continue;
|
|
60
72
|
drained.add(nsDir);
|
|
@@ -68,8 +80,12 @@ async function listOfflineSyncNamespaces(host) {
|
|
|
68
80
|
try {
|
|
69
81
|
for (const ledgerPath of await offlineSyncLifecycleLedgerPaths(host.config.memoryDir)) {
|
|
70
82
|
const namespaceDir = path.dirname(path.dirname(ledgerPath));
|
|
71
|
-
if (path.basename(path.dirname(namespaceDir))
|
|
72
|
-
|
|
83
|
+
if (path.basename(path.dirname(namespaceDir)) !== "namespaces") continue;
|
|
84
|
+
const dirName = path.basename(namespaceDir);
|
|
85
|
+
const decoded = namespaceIdentityFromToken(dirName);
|
|
86
|
+
const name = decoded === null ? dirName : decoded.length > 0 ? decoded : host.config.defaultNamespace;
|
|
87
|
+
if (isSafeRouteNamespace(name)) {
|
|
88
|
+
names.add(name);
|
|
73
89
|
}
|
|
74
90
|
}
|
|
75
91
|
} catch {
|
|
@@ -165,4 +181,4 @@ export {
|
|
|
165
181
|
offlineSyncStorageForSnapshot,
|
|
166
182
|
drainPendingLifecycleForOfflineSync
|
|
167
183
|
};
|
|
168
|
-
//# sourceMappingURL=chunk-
|
|
184
|
+
//# sourceMappingURL=chunk-XSBUROEB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/offline-sync-impression-drain.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { lstat, realpath } from \"node:fs/promises\";\nimport {\n drainPendingLifecycleForSyncOrThrow,\n drainPendingLifecycleLedgerForSync,\n type LifecyclePendingIo,\n} from \"./storage/memory-lifecycle-ledger-access.js\";\nimport { writeFileAtomically } from \"./maintenance/atomic-file.js\";\nimport { log } from \"./logger.js\";\nimport { isErrnoCode } from \"./utils/errno.js\";\nimport { assertPathInsideRoot, pathIsInside } from \"./utils/path-containment.js\";\nimport { displayErrorDetail } from \"./runtime/better-sqlite.js\";\nimport { getConfiguredNamespaces } from \"./scopes/scope-plan.js\";\nimport { isSafeRouteNamespace } from \"./routing/engine.js\";\nimport { namespaceIdentityFromToken } from \"./namespaces/identity.js\";\nimport type { PluginConfig } from \"./types.js\";\n\ntype PendingImpressionDrain = () => Promise<{ pendingDeferred: boolean }>;\n\ntype PendingLifecycleDrain = {\n drainPendingMemoryLifecycleEventsForSync(): Promise<{ folded: boolean; pendingDeferred: boolean }>;\n};\n\ntype LifecycleDrainAtPath = (\n ledgerPath: string,\n) => Promise<{ folded: boolean; pendingDeferred: boolean }>;\n\ntype PendingImpressionHost = {\n drainPendingRecallImpressions(): Promise<{ pendingDeferred: boolean }>;\n};\n/**\n * Fold pending recall-impression spills before building an offline-sync snapshot.\n * A deferred or failed drain must abort the snapshot rather than silently omit\n * durable rows from the sync payload.\n */\nexport async function drainPendingImpressionsForOfflineSync(\n host: PendingImpressionDrain,\n): Promise<void> {\n const maxAttempts = 3;\n let lastError: unknown;\n for (let attempt = 1; attempt <= maxAttempts; attempt++) {\n try {\n const result = await host();\n if (!result.pendingDeferred) return;\n lastError = undefined;\n } catch (error) {\n lastError = error;\n }\n }\n const detail = lastError\n ? `: ${displayErrorDetail(lastError) || \"unknown error\"}`\n : \" (rotation lock held by a peer)\";\n throw new Error(\n `offline-sync impression drain could not fold pending recall impressions after ${maxAttempts} attempts${detail}; aborting snapshot so the pending rows are not silently excluded (#2033)`,\n );\n}\n\n\nexport async function getOfflineSyncStorage<T extends PendingLifecycleDrain & { dir: string }>(\n orchestrator: PendingImpressionHost & {\n config: { memoryDir: string };\n getStorage(namespace: string): Promise<T>;\n listOfflineSyncNamespaces?(): Promise<string[]>;\n },\n namespace: string,\n): Promise<T> {\n const storage = await orchestrator.getStorage(namespace);\n const memoryRoot = path.resolve(orchestrator.config.memoryDir);\n // Recall impressions are global: the orchestrator's single LastRecallStore\n // roots at config.memoryDir, so the active recall_impressions.jsonl lives at\n // <memoryDir>/state/. Fold the global pending queue ONLY when THIS snapshot's\n // root actually contains that active file - a root snapshot. A namespace\n // snapshot (storage.dir under namespaces/<token>/) cannot carry it, so\n // draining there would empty the durable pending queue into a file this\n // snapshot omits and strand the row until a root sync; leave it pending for\n // the root sync instead (#2033).\n const impressionsFile = path.join(memoryRoot, \"state\", \"recall_impressions.jsonl\");\n if (pathIsInside(path.resolve(storage.dir), impressionsFile)) {\n await drainPendingImpressionsForOfflineSync(() => orchestrator.drainPendingRecallImpressions());\n }\n await drainPendingLifecycleForSyncOrThrow(() => storage.drainPendingMemoryLifecycleEventsForSync());\n // Root snapshot: buildOfflineSyncSnapshot walks `namespaces/<ns>/state/` for\n // every namespace under the memory root and INCLUDES each namespace's active\n // lifecycle ledger, but the per-namespace pending spill dirs are offline-sync\n // EXCLUDED. Draining only the root ledger above would let a root snapshot omit\n // append-only rows still sitting in a namespace's spill queue, so fold every\n // namespace ledger too - each through its OWN namespace storage so secure-store\n // AAD stays namespace-scoped (#2033, matching the CLI all-ledger drain). A\n // namespace snapshot folds only its own ledger, already done above.\n if (path.resolve(storage.dir) === memoryRoot && orchestrator.listOfflineSyncNamespaces) {\n const drained = new Set<string>([memoryRoot]);\n for (const ns of await orchestrator.listOfflineSyncNamespaces()) {\n // A single unresolvable namespace (e.g. a legacy canonical token dir whose\n // name exceeds the route-namespace length cap) must not abort the whole root\n // snapshot — degrade to draining the rest. listOfflineSyncNamespaces already\n // normalizes token dirs, so this is defense-in-depth.\n let nsStorage: T;\n try {\n nsStorage = await orchestrator.getStorage(ns);\n } catch (err) {\n log.debug(`offline-sync root drain: skipping namespace ${ns} (non-fatal): ${err}`);\n continue;\n }\n const nsDir = path.resolve(nsStorage.dir);\n if (drained.has(nsDir)) continue;\n drained.add(nsDir);\n await drainPendingLifecycleForSyncOrThrow(() => nsStorage.drainPendingMemoryLifecycleEventsForSync());\n }\n }\n return storage;\n}\n\ntype OfflineSyncNamespaceHost = {\n config: PluginConfig;\n namespaceCatalog: { listNamespaces(): Promise<Array<{ namespace: string }>> };\n};\n\n/**\n * Every namespace whose lifecycle ledger a ROOT offline snapshot enumerates.\n * Configured namespaces plus catalog-discovered ones; the catalog is queried\n * best-effort so a catalog read failure still drains the configured set (#2033).\n */\nexport async function listOfflineSyncNamespaces(host: OfflineSyncNamespaceHost): Promise<string[]> {\n const names = new Set<string>(getConfiguredNamespaces(host.config));\n try {\n for (const ledgerPath of await offlineSyncLifecycleLedgerPaths(host.config.memoryDir)) {\n const namespaceDir = path.dirname(path.dirname(ledgerPath));\n if (path.basename(path.dirname(namespaceDir)) !== \"namespaces\") continue;\n // A namespace is stored under its canonical token dir `ns-<hex>`. Decode the\n // token back to the namespace NAME so the drain fanout resolves the SAME\n // storage the token dir belongs to (the catalog rebuild scanner decodes the\n // same way, catalog.ts finishRebuild). A raw dir already named as a plain\n // namespace is used verbatim. Skip any name the router would reject — e.g. a\n // canonical token dir whose decoded-or-raw name exceeds isSafeRouteNamespace's\n // 64-char cap — because getStorage() would throw `unsafe namespace` and 500\n // the whole root snapshot-stream (the offline-sync regression this fixes).\n const dirName = path.basename(namespaceDir);\n // namespaceIdentityFromToken returns \"\" for the ns-default token (the\n // default-namespace identity) — map that to the configured default\n // namespace instead of skipping the directory as an unsafe empty name.\n const decoded = namespaceIdentityFromToken(dirName);\n const name =\n decoded === null\n ? dirName\n : decoded.length > 0\n ? decoded\n : host.config.defaultNamespace;\n if (isSafeRouteNamespace(name)) {\n names.add(name);\n }\n }\n } catch {\n // best-effort: a filesystem scan failure must not block configured/catalog namespaces\n }\n try {\n for (const record of await host.namespaceCatalog.listNamespaces()) {\n names.add(record.namespace);\n }\n } catch {\n // best-effort: fall back to the configured and filesystem namespace sets\n }\n return [...names];\n}\n\n/**\n * Resolve the offline-sync storage for a snapshot, folding pending spills first.\n * For a root snapshot this also folds every namespace lifecycle ledger the\n * snapshot will enumerate, so append-only rows in a namespace spill queue are\n * never omitted (#2033).\n */\nexport function offlineSyncStorageForSnapshot<T extends PendingLifecycleDrain & { dir: string }>(\n host: PendingImpressionHost &\n OfflineSyncNamespaceHost & {\n getStorage(namespace: string): Promise<T>;\n },\n namespace: string,\n): Promise<T> {\n return getOfflineSyncStorage(\n {\n config: { memoryDir: host.config.memoryDir },\n drainPendingRecallImpressions: () => host.drainPendingRecallImpressions(),\n getStorage: (ns: string) => host.getStorage(ns),\n listOfflineSyncNamespaces: () => listOfflineSyncNamespaces(host),\n },\n namespace,\n );\n}\n\nconst LIFECYCLE_LEDGER_FILE = \"memory-lifecycle-ledger.jsonl\";\n\n/**\n * Plaintext filesystem IO for a standalone (CLI) offline-sync lifecycle drain.\n * A standalone offline cache is plaintext - exactly like its LastRecallStore\n * impression drain - so spills read/append as UTF-8. `writeSecure` keeps the\n * atomic temp+rename the pending contract requires (#2033); a pure drain never\n * spills a new event, but the interface demands an atomic writer.\n */\nfunction plaintextLifecyclePendingIo(): LifecyclePendingIo {\n return {\n writeSecure: async (filePath, payload) => {\n await writeFileAtomically(filePath, payload);\n },\n readSecure: (filePath) => fs.promises.readFile(filePath, \"utf8\"),\n };\n}\n\n/**\n * Lifecycle ledger paths under a standalone memory dir: the root `state/` ledger\n * plus every per-namespace `namespaces/<ns>/state/` ledger (#2033). Offline sync\n * pushes the whole memory dir, so every namespace's ledger can carry pending\n * spills that must be folded first.\n */\nasync function offlineSyncLifecycleLedgerPaths(memoryDir: string): Promise<string[]> {\n const paths = [path.join(memoryDir, \"state\", LIFECYCLE_LEDGER_FILE)];\n const namespacesBase = path.join(memoryDir, \"namespaces\");\n // Symlink/traversal containment (#2033): a symlinked <memoryDir>/namespaces\n // (or a symlinked child) must not redirect the pre-sync drain - and the\n // ledger appends/mkdirs it drives - outside memoryDir. Resolve the memory\n // root and the scan base through realpath, reject a symlinked/escaping/\n // non-directory base, and skip any symlinked/escaping child, mirroring the\n // lifecycle-compaction scanner (orchestration/maintenance.ts) and the\n // memory-store walkers (utils/path-containment). A rejected base is\n // non-fatal: drain the root ledger only, never through the poisoned link.\n let memoryDirReal: string;\n try {\n memoryDirReal = await realpath(memoryDir);\n const baseStat = await lstat(namespacesBase);\n if (baseStat.isSymbolicLink() || !baseStat.isDirectory()) {\n throw new Error(\"namespaces base is a symlink or not a directory\");\n }\n assertPathInsideRoot(memoryDirReal, await realpath(namespacesBase), namespacesBase);\n } catch (err) {\n if (!isErrnoCode(err, \"ENOENT\")) {\n log.debug(`offline-sync lifecycle drain: namespaces base rejected (non-fatal): ${err}`);\n }\n return paths;\n }\n let entries: fs.Dirent[];\n try {\n entries = fs.readdirSync(namespacesBase, { withFileTypes: true });\n } catch (err) {\n if (!isErrnoCode(err, \"ENOENT\")) {\n log.debug(`offline-sync lifecycle drain: namespaces dir scan failed (non-fatal): ${err}`);\n }\n return paths;\n }\n for (const entry of entries.sort((a, b) => a.name.localeCompare(b.name))) {\n if (!entry.isDirectory() || entry.isSymbolicLink()) continue;\n const childPath = path.join(namespacesBase, entry.name);\n try {\n assertPathInsideRoot(memoryDirReal, await realpath(childPath), childPath);\n } catch (err) {\n log.debug(`offline-sync lifecycle drain: skipping out-of-root namespace dir ${childPath}: ${err}`);\n continue;\n }\n paths.push(path.join(childPath, \"state\", LIFECYCLE_LEDGER_FILE));\n }\n return paths;\n}\n\n/**\n * Fold pending memory-lifecycle spills into each active ledger under `memoryDir`\n * before a standalone (CLI) offline-sync snapshot (#2033). Mirrors the\n * access-service snapshot entrypoints, which drain lifecycle pending first: the\n * default sync exclude globs keep `memory-lifecycle-ledger.jsonl.pending.d` out\n * of the push, so an append-only row (promotion/import/explicit capture) that\n * spilled while the ledger lock was held would be silently dropped if the local\n * node were discarded before maintenance folds it. A deferred drain (lock held\n * by a peer) or a repeatedly failing fold ABORTS via\n * {@link drainPendingLifecycleForSyncOrThrow} rather than building/pushing a\n * snapshot that omits durable rows. Fast no-op per ledger with no pending dir.\n */\nexport async function drainPendingLifecycleForOfflineSync(\n memoryDir: string,\n drainAtPath: LifecycleDrainAtPath = (ledgerPath) => {\n const io = plaintextLifecyclePendingIo();\n const stateDir = path.dirname(ledgerPath);\n return drainPendingLifecycleLedgerForSync(\n ledgerPath,\n io,\n (payload) => fs.promises.appendFile(ledgerPath, payload),\n async () => {\n await fs.promises.mkdir(stateDir, { recursive: true });\n },\n );\n },\n): Promise<void> {\n for (const ledgerPath of await offlineSyncLifecycleLedgerPaths(memoryDir)) {\n await drainPendingLifecycleForSyncOrThrow(() => drainAtPath(ledgerPath));\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/cli.js
CHANGED
|
@@ -90,7 +90,7 @@ import {
|
|
|
90
90
|
runWorkProductStatusCliCommand,
|
|
91
91
|
runWorkProjectCliCommand,
|
|
92
92
|
runWorkTaskCliCommand
|
|
93
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-KQED7RCV.js";
|
|
94
94
|
import "./chunk-MMACM5G2.js";
|
|
95
95
|
import "./chunk-54BGIBCR.js";
|
|
96
96
|
import "./chunk-H4CKS5B2.js";
|
|
@@ -171,7 +171,7 @@ import "./chunk-K6MV3TRQ.js";
|
|
|
171
171
|
import "./chunk-PIG4WJFQ.js";
|
|
172
172
|
import "./chunk-KFZY2OFH.js";
|
|
173
173
|
import "./chunk-LBJBNWS2.js";
|
|
174
|
-
import "./chunk-
|
|
174
|
+
import "./chunk-7O2C2OOF.js";
|
|
175
175
|
import "./chunk-V7IZKJI3.js";
|
|
176
176
|
import "./chunk-MKQBXQKU.js";
|
|
177
177
|
import "./chunk-SEDEKFYQ.js";
|
|
@@ -181,11 +181,11 @@ import "./chunk-RSUYKGGZ.js";
|
|
|
181
181
|
import "./chunk-42NQ7AVG.js";
|
|
182
182
|
import "./chunk-TMSXWOBZ.js";
|
|
183
183
|
import "./chunk-7RXCMVFQ.js";
|
|
184
|
-
import "./chunk-
|
|
184
|
+
import "./chunk-B6P3QDBF.js";
|
|
185
185
|
import "./chunk-IC2TCZJ2.js";
|
|
186
186
|
import "./chunk-D24OXEPB.js";
|
|
187
|
-
import "./chunk-
|
|
188
|
-
import "./chunk-
|
|
187
|
+
import "./chunk-VZC7ORJE.js";
|
|
188
|
+
import "./chunk-BGBPDAIN.js";
|
|
189
189
|
import "./chunk-HNZKVLAN.js";
|
|
190
190
|
import "./chunk-EQWEIIKQ.js";
|
|
191
191
|
import "./chunk-6WAFYNVT.js";
|
|
@@ -196,7 +196,7 @@ import "./chunk-T4WDJPEZ.js";
|
|
|
196
196
|
import "./chunk-HBYQAOED.js";
|
|
197
197
|
import "./chunk-5RUE3GHQ.js";
|
|
198
198
|
import "./chunk-OADWQ5CR.js";
|
|
199
|
-
import "./chunk-
|
|
199
|
+
import "./chunk-WIUYMCPL.js";
|
|
200
200
|
import "./chunk-GDASG7NC.js";
|
|
201
201
|
import "./chunk-GDB4J2H3.js";
|
|
202
202
|
import "./chunk-7CPOZH6Y.js";
|
|
@@ -233,7 +233,7 @@ import "./chunk-64UDOIMI.js";
|
|
|
233
233
|
import "./chunk-ICP53SKG.js";
|
|
234
234
|
import "./chunk-AQEJKOKI.js";
|
|
235
235
|
import "./chunk-6HMYUWXR.js";
|
|
236
|
-
import "./chunk-
|
|
236
|
+
import "./chunk-XSBUROEB.js";
|
|
237
237
|
import "./chunk-R6YJI3HE.js";
|
|
238
238
|
import "./chunk-7VZWZVYG.js";
|
|
239
239
|
import "./chunk-EIR5VLIH.js";
|