target-supabase-sdk 0.2.20 → 0.2.22

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.
Files changed (45) hide show
  1. package/dist/browser.d.ts +1 -1
  2. package/dist/browser.d.ts.map +1 -1
  3. package/dist/browser.js +1 -1
  4. package/dist/chunks/{task-queue-CqmIVCBi.js → task-queue-DWFe0rCS.js} +20 -22
  5. package/dist/chunks/task-queue-DWFe0rCS.js.map +1 -0
  6. package/dist/node.d.ts +2 -2
  7. package/dist/node.d.ts.map +1 -1
  8. package/dist/node.js +174 -19
  9. package/dist/node.js.map +1 -1
  10. package/dist/shared/feed/feed.build.d.ts +4 -2
  11. package/dist/shared/feed/feed.build.d.ts.map +1 -1
  12. package/dist/shared/feed/node/feed.access.d.ts +10 -2
  13. package/dist/shared/feed/node/feed.access.d.ts.map +1 -1
  14. package/dist/shared/feed/node/feed.service.d.ts +26 -1
  15. package/dist/shared/feed/node/feed.service.d.ts.map +1 -1
  16. package/dist/shared/feed/node/index.d.ts +3 -3
  17. package/dist/shared/feed/node/index.d.ts.map +1 -1
  18. package/dist/shared/http/fetch-retry.d.ts +2 -0
  19. package/dist/shared/http/fetch-retry.d.ts.map +1 -1
  20. package/dist/shared/media/node/media.service.d.ts +8 -2
  21. package/dist/shared/media/node/media.service.d.ts.map +1 -1
  22. package/dist/shared/review/index.d.ts +1 -1
  23. package/dist/shared/review/index.d.ts.map +1 -1
  24. package/dist/shared/review/review.build.d.ts +3 -6
  25. package/dist/shared/review/review.build.d.ts.map +1 -1
  26. package/dist/shared/review/review.interface.d.ts +2 -2
  27. package/dist/shared/review/review.query.d.ts +2 -2
  28. package/dist/shared/review/review.query.d.ts.map +1 -1
  29. package/package.json +1 -1
  30. package/src/browser.ts +1 -1
  31. package/src/node.ts +4 -0
  32. package/src/shared/feed/README.md +4 -3
  33. package/src/shared/feed/feed.build.ts +6 -3
  34. package/src/shared/feed/node/feed.access.ts +33 -6
  35. package/src/shared/feed/node/feed.service.ts +131 -4
  36. package/src/shared/feed/node/index.ts +7 -3
  37. package/src/shared/http/fetch-retry.ts +13 -2
  38. package/src/shared/media/README.md +4 -4
  39. package/src/shared/media/node/media.service.ts +77 -10
  40. package/src/shared/review/README.md +15 -16
  41. package/src/shared/review/index.ts +1 -1
  42. package/src/shared/review/review.build.ts +8 -13
  43. package/src/shared/review/review.interface.ts +2 -2
  44. package/src/shared/review/review.query.ts +4 -4
  45. package/dist/chunks/task-queue-CqmIVCBi.js.map +0 -1
package/dist/node.d.ts CHANGED
@@ -27,8 +27,8 @@ export { createL3ChildLauncher, createServiceHost, runSingleProcessService } fro
27
27
  export type { CallTelegramOptions, ResolvedTelegramStorageOptions, TelegramApiResponse, TelegramChunkDeleteResult, TelegramDocument, TelegramFile, TelegramMessage, TelegramStorageProvider, TelegramStorageProviderOptions, TelegramUploadResult, } from "./node/telegram";
28
28
  export { callTelegramApi, createTelegramStorageProvider, downloadTelegramChunk, encodeTelegramChunkUrl, PROVIDER_TELEGRAM, parseTelegramChunkUrl, resolveTelegramStorageOptions, telegramDownloadBinary, telegramFileDownloadUrl, } from "./node/telegram";
29
29
  export { RepoManager } from "./repo/repo-manager";
30
- export type { CheckFeedLocalAvailabilityInput, FeedAvailabilityResult, FeedIngestSource, RegisterFeedInput, RegisterFeedResult, } from "./shared/feed/node";
31
- export { checkFeedLocalAvailability, checkFeedOssAvailability, FEED_INGEST_SOURCES, isFeedIngestSource, registerFeed, } from "./shared/feed/node";
30
+ export type { CheckFeedLocalAvailabilityInput, CheckFeedOssAvailabilityOptions, CreateFeedInput, CreateFeedResult, FeedAvailabilityResult, FeedIngestSource, RegisterFeedInput, RegisterFeedResult, } from "./shared/feed/node";
31
+ export { checkFeedLocalAvailability, checkFeedOssAvailability, createFeed, FEED_INGEST_SOURCES, isFeedIngestSource, registerFeed, } from "./shared/feed/node";
32
32
  export { runCollectLogTick } from "./shared/log/spool/collector";
33
33
  export { LOG_SPOOL_SERVICE_ID_ENV } from "./shared/log/spool/config";
34
34
  export type { LogSpoolCoordinator, LogSpoolCoordinatorOptions } from "./shared/log/spool/coordinator";
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,YAAY,EACR,aAAa,EACb,gBAAgB,EAChB,4BAA4B,EAC5B,kCAAkC,EAClC,mBAAmB,EACnB,2BAA2B,GAC9B,MAAM,YAAY,CAAC;AACpB,OAAO,EACH,aAAa,EACb,OAAO,EACP,MAAM,EACN,KAAK,EACL,SAAS,EACT,OAAO,EACP,qBAAqB,EACrB,2BAA2B,EAC3B,YAAY,EACZ,oBAAoB,EACpB,OAAO,EACP,UAAU,EACV,sBAAsB,EACtB,+BAA+B,EAC/B,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,GAC3B,MAAM,YAAY,CAAC;AACpB,YAAY,EACR,+BAA+B,EAC/B,kBAAkB,EAClB,cAAc,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,YAAY,EACR,8BAA8B,EAC9B,iBAAiB,GACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACH,uBAAuB,EACvB,uBAAuB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,YAAY,EACR,wBAAwB,EACxB,kCAAkC,EAClC,mBAAmB,EACnB,4BAA4B,EAC5B,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,mBAAmB,EACnB,2BAA2B,EAC3B,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,GAChB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACR,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,6BAA6B,EAC7B,0BAA0B,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACH,qBAAqB,EACrB,sBAAsB,EACtB,4BAA4B,EAC5B,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACR,qCAAqC,EACrC,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,6BAA6B,EAC7B,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtE,YAAY,EACR,2BAA2B,EAC3B,4BAA4B,EAC5B,iCAAiC,EACjC,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,0BAA0B,EAC1B,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACR,4BAA4B,EAC5B,eAAe,EACf,2BAA2B,EAC3B,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,2BAA2B,EAC3B,2BAA2B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACxG,YAAY,EACR,mBAAmB,EACnB,8BAA8B,EAC9B,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,8BAA8B,EAC9B,oBAAoB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACH,eAAe,EACf,6BAA6B,EAC7B,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,EACtB,uBAAuB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EACR,+BAA+B,EAC/B,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACH,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,YAAY,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AACtG,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,GAC7B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACR,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,GACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACH,sBAAsB,EACtB,wBAAwB,GAC3B,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACH,4BAA4B,EAC5B,0BAA0B,EAC1B,iBAAiB,EACjB,gBAAgB,GACnB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAClF,YAAY,EACR,2BAA2B,EAC3B,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACR,YAAY,EACZ,yBAAyB,EACzB,+BAA+B,GAClC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACH,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,UAAU,EACV,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,GACnB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACR,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,MAAM,EACN,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,kCAAkC,EAClC,yBAAyB,EACzB,sBAAsB,EACtB,gCAAgC,EAChC,4CAA4C,EAC5C,qCAAqC,EACrC,WAAW,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAChE,YAAY,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,EAAE,8BAA8B,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,YAAY,EACR,+BAA+B,EAC/B,8BAA8B,EAC9B,+BAA+B,GAClC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACH,kBAAkB,EAClB,yBAAyB,GAC5B,MAAM,6BAA6B,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EACH,iBAAiB,EACjB,wBAAwB,EACxB,kCAAkC,EAClC,qCAAqC,GACxC,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACR,4BAA4B,EAC5B,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,GAClB,MAAM,6BAA6B,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
package/dist/node.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import { z } from 'zod';
2
- import { M as MAX_POLL_TARGET_LIST_SIZE, V as validateWithSchema, g as createLogger, z as pollTargetList, k as generateResponse, h as createTarget, K as supabase, w as logManager, X as createScope, d as LogLevel, Y as patchScope, J as scanTargetList, Z as withModule, l as getPossibleTarget, m as getTarget, Q as updateTarget, E as postTarget, q as isCreateTargetAlreadyExistsError, t as isOptimisticLockResponse, R as updateTargetDetails } from './chunks/list.api-BzbTJBsM.js';
2
+ import { M as MAX_POLL_TARGET_LIST_SIZE, V as validateWithSchema, g as createLogger, z as pollTargetList, k as generateResponse, h as createTarget, K as supabase, w as logManager, X as createScope, d as LogLevel, Y as patchScope, J as scanTargetList, Z as withModule, l as getPossibleTarget, E as postTarget, q as isCreateTargetAlreadyExistsError, m as getTarget, Q as updateTarget, t as isOptimisticLockResponse, R as updateTargetDetails } from './chunks/list.api-BzbTJBsM.js';
3
3
  export { B as BaseValidator, C as CREATE_TARGET_ALREADY_EXISTS_MESSAGE, a as CategoryList, L as LOG_BATCH_LOADER_KEY, b as LOG_MIN_LEVEL_ENV_KEY, c as LOG_PERSIST_LOADER_KEY, e as MAX_TARGET_LIST_PAGE_SIZE, O as OPTIMISTIC_LOCK_ERROR_CODE, f as OPTIMISTIC_LOCK_FAILED_MESSAGE, P as PostListValidator, S as StatusCode, U as UPDATE_TARGET_NOT_FOUND_MESSAGE, i as deleteTarget, j as formatZodError, n as getTargetList, o as getTargetTotalCount, p as handleSupabaseError, r as isDevEnvironment, s as isOptimisticLockError, u as logDev, v as logDevGroup, x as logMinLevelFromEnv, y as patchTarget, A as postListCreate, D as postLogListCreate, F as postTargetPayloadSchema, G as queryFilterSchema, H as resolveLogMinLevel, I as safeParseWithSchema, N as targetDraftSchema, T as validateWith } from './chunks/list.api-BzbTJBsM.js';
4
4
  import { l as loadEnvFiles, b as readEnv, c as requireEnv, d as resolveLogSpoolSpawnEnvForLabel, e as resolveLogSpoolConfig, f as resolveLogSpoolRoot, g as resolveAllLogSpoolProcessRoles, h as logSpoolProcessDir, s as spoolLogger, i as parseLogSpoolBatchFilename, j as computeLogBatchIdempotencyKey, k as buildLogListDraft, n as postLogBatch, a as logSpoolEnabledFromEnv, o as logSpoolConfigFromEnv, L as LOG_SPOOL_SERVICE_ID_ENV, q as ensureLogSpoolFromEnv, t as shutdownLogSpoolFromEnv, u as getLogSpoolStats } from './chunks/enable-C7lFooTG.js';
5
5
  export { C as CLI_PROD_FLAG, S as SERVICE_ENV_PROFILE_ENV_KEY, w as SERVICE_ENV_PROFILE_PROD, x as buildLogSpoolSpawnEnv, y as envBool, z as envInt, A as envMs, B as envNumber, D as envPort, E as envProfileFromProcess, F as resolveDefaultEnvFiles, r as resolveProjectRootByPackageName, G as resolveProjectRootFromModule, v as validateLogSpoolPreloadEnv } from './chunks/enable-C7lFooTG.js';
6
6
  import { randomBytes, createHash } from 'node:crypto';
7
7
  import { readFile, unlink, mkdir, writeFile, rename, access, stat, readdir, constants } from 'node:fs/promises';
8
8
  import { dirname, resolve, join, isAbsolute } from 'node:path';
9
- import { bx as sha256Hex, bD as getErrorMessage, bE as LOG_TOPIC_NODE, a_ as postRegisterNode, aE as patchChangeNodeStatus, N as NodeStatus, aP as patchStopNode, aM as patchNodeHeartBeat, E as EMPTY_REGISTRY_SLOT_RUNTIME_STATE, bn as runRegistrySlotGuardCheck, bc as registrySlotRuntimePatchFromGuardResult, c as CategoryNode, a1 as evaluateBusyNodeLiveness, aO as patchServiceRuntime, at as isLogEntry, J as claimServiceRegistrySlot, m as ServiceRegistryError, a4 as fetchWithRetry, aw as isRetryableHttpStatus, a3 as fetchBinaryWithRetry, av as isOpaqueChunkUrl, e as CategoryRepo, aq as isHttpUrl, bF as isFeedIngestSource, bG as resolveFeedOriginalStorageProvider, b as CategoryLink, bH as buildFeedTagList, ap as isFeedValue, an as guessMediaMime, M as MEDIA_CONTENT_HASH_ALGORITHM, au as isMediaValue, ay as mediaLinkDedupFilters, B as buildMediaLinkDraft, R as ResultCode, bI as LOG_TOPIC_TASK, o as TASK_REPO_USAGE, ah as getScanRemoteRepoValues, aI as patchClaimTask, bJ as CRITICAL_UNKNOWN_TASK_TRACE_ID, aG as patchChangeTaskStatus, q as TaskStatusAction, bK as toError, b6 as postTaskSchema, bL as createTaskRow, p as TaskStatus } from './chunks/task-queue-CqmIVCBi.js';
10
- export { A as ApiMethod, C as CategoryConfig, a as CategoryExtraction, d as CategoryParcel, f as CategoryService, g as CategoryTask, D as DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS, bM as FEED_INGEST_SOURCES, F as FEED_VALUES, L as LINK_MANIFEST_VERSION, h as LIST_MANIFEST_VERSION, i as MEDIA_CONTENT_HASH_PREFIX_LENGTH, j as MEDIA_VALUES, P as POST_TASK_DEFAULT_MAX_ATTEMPTS, k as ParcelManager, l as PostLinkValidator, S as ServiceLifecycleStatus, n as ServiceSlotStatus, T as TARGET_SYSTEM_REGISTRY_KEY, r as apiDetailsSchema, s as appendSystemRegistryEmptySlots, t as assertRegistrySlotAvailable, u as assertRegistrySlotOwner, v as buildEmptyServiceSlots, w as buildFeedLinkDraft, x as buildFeedLinkName, y as buildLinkTargetDraft, z as buildListTargetDraft, G as buildMediaNameFromLocator, H as buildReviewLinkDraft, I as buildSystemRegistryConfigDetails, K as classifyNetworkError, O as countTasksByType, Q as createActiveServiceLifecycle, U as createClaimedRegistrySlotRuntimeState, V as createStorageProviderRegistry, W as createUploadTracker, X as decodeLogBatch, Y as decodeLogBatchList, Z as defaultL3ServiceDetails, _ as deleteParcel, $ as deleteParcelSchema, a0 as escapeIlikePattern, a2 as feedLinkDedupFilters, a5 as fieldDefinitionSchema, a6 as flattenLogBatch, a7 as flattenLogBatches, a8 as formatNetworkError, a9 as getApi, aa as getApiSchema, ab as getConfig, ac as getConfigSchema, ad as getExtraction, ae as getExtractionSchema, af as getParcel, ag as getParcelSchema, ai as getScanRemoteRepoValuesSchema, aj as getService, ak as getServiceSchema, al as getTargetSystemRegistry, am as getValueAtPath, ao as installChunkFetchRegistry, ar as isLocalFilesystemPath, as as isLogBatchList, ax as linkTargetDraftBuildInputSchema, az as parcelDetailsSchema, aA as parseLogBatchMeta, aB as parseProviderPrefixedUrl, aC as parseServiceSlot, aD as parseServiceSlots, aF as patchChangeNodeStatusSchema, aH as patchChangeTaskStatusSchema, aJ as patchClaimTaskSchema, aK as patchExtractionObjects, aL as patchExtractionObjectsSchema, aN as patchNodeHeartBeatSchema, aQ as patchStopNodeSchema, aR as patchTaskProgress, aS as patchTaskProgressSchema, aT as postApi, aU as postApiSchema, aV as postExtraction, aW as postExtractionSchema, aX as postLinkCreate, aY as postParcel, aZ as postParcelSchema, a$ as postRegisterNodeSchema, b0 as postService, b1 as postServiceInstance, b2 as postServiceSchema, b3 as postSystemRegistryConfig, b4 as postSystemRegistryConfigSchema, b5 as postTask, b7 as postTaskWithRetry, b8 as publishParcel, b9 as registerProviderChunkResolver, ba as registerService, bb as registerServiceAtStartup, bd as releaseSystemRegistrySlots, be as releaseSystemRegistrySlotsByServiceId, bf as requestHasBody, bg as resetSystemRegistryConfig, bh as resetSystemRegistryConfigSchema, bi as resolveActiveRegistryServiceId, bj as resolveFetchUrl, bk as restoreParcel, bl as restoreParcelById, bm as reviewLinksForTargetFilters, bo as sanitizeFileName, bp as sanitizeParcelFileName, bq as scanExtractionList, br as scanExtractionListSchema, bs as schemaDefinitionSchema, bt as serviceDetailsSchema, bu as serviceLifecycleSchema, bv as serviceNodeSnapshotSchema, bw as serviceRuntimeSchema, by as summarizeTaskQueue, bz as systemRegistrySeedSlotSchema, bA as toPostgrestTextArrayLiteral, bB as unregisterService, bC as unregisterServiceAtShutdown } from './chunks/task-queue-CqmIVCBi.js';
9
+ import { bx as sha256Hex, bD as getErrorMessage, bE as LOG_TOPIC_NODE, a_ as postRegisterNode, aE as patchChangeNodeStatus, N as NodeStatus, aP as patchStopNode, aM as patchNodeHeartBeat, E as EMPTY_REGISTRY_SLOT_RUNTIME_STATE, bn as runRegistrySlotGuardCheck, bc as registrySlotRuntimePatchFromGuardResult, c as CategoryNode, a1 as evaluateBusyNodeLiveness, aO as patchServiceRuntime, at as isLogEntry, J as claimServiceRegistrySlot, m as ServiceRegistryError, a4 as fetchWithRetry, aw as isRetryableHttpStatus, a3 as fetchBinaryWithRetry, av as isOpaqueChunkUrl, e as CategoryRepo, aq as isHttpUrl, ap as isFeedValue, bF as isFeedIngestSource, bG as resolveFeedOriginalStorageProvider, a2 as feedLinkDedupFilters, w as buildFeedLinkDraft, b as CategoryLink, bH as buildFeedTagList, an as guessMediaMime, M as MEDIA_CONTENT_HASH_ALGORITHM, au as isMediaValue, ay as mediaLinkDedupFilters, B as buildMediaLinkDraft, R as ResultCode, bI as LOG_TOPIC_TASK, o as TASK_REPO_USAGE, ah as getScanRemoteRepoValues, aI as patchClaimTask, bJ as CRITICAL_UNKNOWN_TASK_TRACE_ID, aG as patchChangeTaskStatus, q as TaskStatusAction, bK as toError, b6 as postTaskSchema, bL as createTaskRow, p as TaskStatus } from './chunks/task-queue-DWFe0rCS.js';
10
+ export { A as ApiMethod, C as CategoryConfig, a as CategoryExtraction, d as CategoryParcel, f as CategoryService, g as CategoryTask, D as DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS, bM as FEED_INGEST_SOURCES, F as FEED_VALUES, L as LINK_MANIFEST_VERSION, h as LIST_MANIFEST_VERSION, i as MEDIA_CONTENT_HASH_PREFIX_LENGTH, j as MEDIA_VALUES, P as POST_TASK_DEFAULT_MAX_ATTEMPTS, k as ParcelManager, l as PostLinkValidator, S as ServiceLifecycleStatus, n as ServiceSlotStatus, T as TARGET_SYSTEM_REGISTRY_KEY, r as apiDetailsSchema, s as appendSystemRegistryEmptySlots, t as assertRegistrySlotAvailable, u as assertRegistrySlotOwner, v as buildEmptyServiceSlots, x as buildFeedLinkName, y as buildLinkTargetDraft, z as buildListTargetDraft, G as buildMediaNameFromLocator, H as buildReviewLinkDraft, I as buildSystemRegistryConfigDetails, K as classifyNetworkError, O as countTasksByType, Q as createActiveServiceLifecycle, U as createClaimedRegistrySlotRuntimeState, V as createStorageProviderRegistry, W as createUploadTracker, X as decodeLogBatch, Y as decodeLogBatchList, Z as defaultL3ServiceDetails, _ as deleteParcel, $ as deleteParcelSchema, a0 as escapeIlikePattern, a5 as fieldDefinitionSchema, a6 as flattenLogBatch, a7 as flattenLogBatches, a8 as formatNetworkError, a9 as getApi, aa as getApiSchema, ab as getConfig, ac as getConfigSchema, ad as getExtraction, ae as getExtractionSchema, af as getParcel, ag as getParcelSchema, ai as getScanRemoteRepoValuesSchema, aj as getService, ak as getServiceSchema, al as getTargetSystemRegistry, am as getValueAtPath, ao as installChunkFetchRegistry, ar as isLocalFilesystemPath, as as isLogBatchList, ax as linkTargetDraftBuildInputSchema, az as parcelDetailsSchema, aA as parseLogBatchMeta, aB as parseProviderPrefixedUrl, aC as parseServiceSlot, aD as parseServiceSlots, aF as patchChangeNodeStatusSchema, aH as patchChangeTaskStatusSchema, aJ as patchClaimTaskSchema, aK as patchExtractionObjects, aL as patchExtractionObjectsSchema, aN as patchNodeHeartBeatSchema, aQ as patchStopNodeSchema, aR as patchTaskProgress, aS as patchTaskProgressSchema, aT as postApi, aU as postApiSchema, aV as postExtraction, aW as postExtractionSchema, aX as postLinkCreate, aY as postParcel, aZ as postParcelSchema, a$ as postRegisterNodeSchema, b0 as postService, b1 as postServiceInstance, b2 as postServiceSchema, b3 as postSystemRegistryConfig, b4 as postSystemRegistryConfigSchema, b5 as postTask, b7 as postTaskWithRetry, b8 as publishParcel, b9 as registerProviderChunkResolver, ba as registerService, bb as registerServiceAtStartup, bd as releaseSystemRegistrySlots, be as releaseSystemRegistrySlotsByServiceId, bf as requestHasBody, bg as resetSystemRegistryConfig, bh as resetSystemRegistryConfigSchema, bi as resolveActiveRegistryServiceId, bj as resolveFetchUrl, bk as restoreParcel, bl as restoreParcelById, bm as reviewLinksForNameFilters, bo as sanitizeFileName, bp as sanitizeParcelFileName, bq as scanExtractionList, br as scanExtractionListSchema, bs as schemaDefinitionSchema, bt as serviceDetailsSchema, bu as serviceLifecycleSchema, bv as serviceNodeSnapshotSchema, bw as serviceRuntimeSchema, by as summarizeTaskQueue, bz as systemRegistrySeedSlotSchema, bA as toPostgrestTextArrayLiteral, bB as unregisterService, bC as unregisterServiceAtShutdown } from './chunks/task-queue-DWFe0rCS.js';
11
11
  import { spawn } from 'node:child_process';
12
12
  import { ProxyAgent } from 'undici';
13
13
  import { tmpdir } from 'node:os';
@@ -3414,24 +3414,26 @@ async function checkFeedLocalAvailability(input) {
3414
3414
  }
3415
3415
  const OSS_CHECK_TIMEOUT_MS = 15_000;
3416
3416
  const OSS_CHECK_MAX_ATTEMPTS = 2;
3417
- async function probeHttpLocator(locator, method) {
3417
+ async function probeHttpLocator(locator, method, options) {
3418
3418
  return fetchWithRetry(locator, {
3419
3419
  method,
3420
3420
  ...(method === "GET" ? { headers: { Range: "bytes=0-0" } } : {}),
3421
3421
  }, {
3422
3422
  label: "feed-oss-check",
3423
- timeoutMs: OSS_CHECK_TIMEOUT_MS,
3423
+ timeoutMs: options?.timeoutMs ?? OSS_CHECK_TIMEOUT_MS,
3424
3424
  maxAttempts: OSS_CHECK_MAX_ATTEMPTS,
3425
+ ...(options?.fetch != null ? { fetch: options.fetch } : {}),
3425
3426
  });
3426
3427
  }
3427
3428
  /**
3428
3429
  * Remote reachability for feed ingest (`.oss` source) via HTTP(S).
3429
3430
  *
3430
- * Tries `HEAD`, then `GET` with `Range: bytes=0-0` when `HEAD` is not allowed.
3431
+ * Optional `tryLocalResolve` first (same-host Files). Then `HEAD`, then `GET` with
3432
+ * `Range: bytes=0-0` when `HEAD` is not allowed. Pass `fetch` for proxied outbound.
3431
3433
  *
3432
3434
  * **Node-only**
3433
3435
  */
3434
- async function checkFeedOssAvailability(locator) {
3436
+ async function checkFeedOssAvailability(locator, options) {
3435
3437
  const trimmed = locator.trim();
3436
3438
  if (trimmed === "") {
3437
3439
  return { ok: false, reason: "locator is empty" };
@@ -3439,10 +3441,20 @@ async function checkFeedOssAvailability(locator) {
3439
3441
  if (!isHttpUrl(trimmed)) {
3440
3442
  return { ok: false, reason: `oss locator must be an http(s) URL: ${trimmed}` };
3441
3443
  }
3444
+ if (options?.tryLocalResolve != null) {
3445
+ try {
3446
+ if (await options.tryLocalResolve(trimmed)) {
3447
+ return { ok: true };
3448
+ }
3449
+ }
3450
+ catch {
3451
+ // fall through to HTTP
3452
+ }
3453
+ }
3442
3454
  try {
3443
- let response = await probeHttpLocator(trimmed, "HEAD");
3455
+ let response = await probeHttpLocator(trimmed, "HEAD", options);
3444
3456
  if (response.status === 405 || response.status === 501) {
3445
- response = await probeHttpLocator(trimmed, "GET");
3457
+ response = await probeHttpLocator(trimmed, "GET", options);
3446
3458
  }
3447
3459
  if (response.ok || (response.status >= 200 && response.status < 400)) {
3448
3460
  return { ok: true };
@@ -3555,7 +3567,7 @@ async function registerFeed(input) {
3555
3567
  }
3556
3568
  }
3557
3569
  else {
3558
- const availability = await checkFeedOssAvailability(locator);
3570
+ const availability = await checkFeedOssAvailability(locator, input.ossCheck);
3559
3571
  if (!availability.ok) {
3560
3572
  throw new Error(`registerFeed: oss locator unavailable — ${availability.reason ?? "unknown"}`);
3561
3573
  }
@@ -3595,6 +3607,96 @@ async function registerFeed(input) {
3595
3607
  });
3596
3608
  return { id, updated: true };
3597
3609
  }
3610
+ /**
3611
+ * Insert a new feed Link already on `.local` or `.oss` (not a `.public` promote).
3612
+ * Dedup: `category` + `value` + `name`. Same original → `{ created: false }`.
3613
+ */
3614
+ async function createFeed(input) {
3615
+ if (!isFeedValue(input.value)) {
3616
+ throw new Error(`createFeed: unsupported feed value: ${String(input.value)}`);
3617
+ }
3618
+ if (!isFeedIngestSource(input.source)) {
3619
+ throw new Error(`createFeed: source must be .local or .oss, got ${String(input.source)}`);
3620
+ }
3621
+ const name = input.name.trim();
3622
+ if (name === "") {
3623
+ throw new Error("createFeed: name is empty");
3624
+ }
3625
+ const resolvedStorageProvider = resolveFeedOriginalStorageProvider(input.source, input.storageProvider);
3626
+ const locator = input.locator.trim();
3627
+ if (locator === "") {
3628
+ throw new Error("createFeed: locator is empty");
3629
+ }
3630
+ const { data: existing } = await getPossibleTarget({
3631
+ filterList: feedLinkDedupFilters({ value: input.value, name }),
3632
+ });
3633
+ if (existing != null) {
3634
+ const link = existing;
3635
+ if (isSameIngestState(link, input.source, resolvedStorageProvider, locator)) {
3636
+ return { id: existing.id, created: false };
3637
+ }
3638
+ throw new Error("createFeed: feed name already exists with different source, storageProvider, or locator");
3639
+ }
3640
+ if (input.source === ".local") {
3641
+ const localStorageProvider = input.localStorageProvider?.trim() ?? "";
3642
+ if (localStorageProvider === "") {
3643
+ throw new Error("createFeed: localStorageProvider is required when source is .local");
3644
+ }
3645
+ const availability = await checkFeedLocalAvailability({
3646
+ value: input.value,
3647
+ storageProvider: resolvedStorageProvider,
3648
+ locator,
3649
+ localStorageProvider,
3650
+ });
3651
+ if (!availability.ok) {
3652
+ throw new Error(`createFeed: local locator unavailable — ${availability.reason ?? "unknown"}`);
3653
+ }
3654
+ }
3655
+ else {
3656
+ const availability = await checkFeedOssAvailability(locator, input.ossCheck);
3657
+ if (!availability.ok) {
3658
+ throw new Error(`createFeed: oss locator unavailable — ${availability.reason ?? "unknown"}`);
3659
+ }
3660
+ }
3661
+ const draft = buildFeedLinkDraft({
3662
+ name,
3663
+ value: input.value,
3664
+ source: input.source,
3665
+ storageProvider: resolvedStorageProvider,
3666
+ locator,
3667
+ description: input.description,
3668
+ preview: input.preview ?? locator,
3669
+ tagList: input.tagList,
3670
+ });
3671
+ try {
3672
+ const { data, error } = await postTarget({
3673
+ name: draft.name,
3674
+ value: draft.value,
3675
+ category: draft.category,
3676
+ tagList: draft.tagList,
3677
+ details: draft.details,
3678
+ });
3679
+ if (error != null || data == null) {
3680
+ throw new Error(error?.message ?? "createFeed: postTarget failed");
3681
+ }
3682
+ logger$1.info("feed created", {
3683
+ topic: "register",
3684
+ data: { id: data.id, source: input.source, name, locator },
3685
+ });
3686
+ return { id: data.id, created: true };
3687
+ }
3688
+ catch (error) {
3689
+ if (isCreateTargetAlreadyExistsError(error)) {
3690
+ const raced = await getPossibleTarget({
3691
+ filterList: feedLinkDedupFilters({ value: input.value, name }),
3692
+ });
3693
+ if (raced.data != null) {
3694
+ return { id: raced.data.id, created: false };
3695
+ }
3696
+ }
3697
+ throw error;
3698
+ }
3699
+ }
3598
3700
 
3599
3701
  function createLogSpoolCoordinator(options) {
3600
3702
  const { serviceValue, serviceId } = options;
@@ -3781,9 +3883,47 @@ async function findMediaLink(input) {
3781
3883
  });
3782
3884
  return data != null ? data : null;
3783
3885
  }
3886
+ function mediaOriginalFromRow(row) {
3887
+ const details = row.details;
3888
+ const original = details?.original;
3889
+ return original ?? {};
3890
+ }
3891
+ async function patchMediaOriginal(existing, storageProvider, locator) {
3892
+ const original = mediaOriginalFromRow(existing);
3893
+ if (original.storageProvider === storageProvider && original.locator === locator) {
3894
+ return { id: existing.id, created: false };
3895
+ }
3896
+ await updateTarget({
3897
+ id: existing.id,
3898
+ optimisticLockFilterList: [
3899
+ { field: "category", operator: "eq", value: CategoryLink.LINK },
3900
+ { field: "value", operator: "eq", value: existing.value },
3901
+ ],
3902
+ updateFn: (row) => {
3903
+ const details = row.details;
3904
+ const prev = (details.original ?? {});
3905
+ return {
3906
+ details: {
3907
+ ...details,
3908
+ original: {
3909
+ ...prev,
3910
+ storageProvider,
3911
+ locator,
3912
+ },
3913
+ },
3914
+ };
3915
+ },
3916
+ });
3917
+ logger.info("media original patched", {
3918
+ topic: "register",
3919
+ data: { id: existing.id, locator },
3920
+ });
3921
+ return { id: existing.id, created: false };
3922
+ }
3784
3923
  /**
3785
3924
  * Register a media Link: dedup → availability → probe → `postTarget`.
3786
- * Idempotent when `category`+`value`+`name` already exist.
3925
+ * Idempotent when `category`+`value`+`name` already exist (local path).
3926
+ * HTTP `locator` + `localLocator`: probe local file, persist remote URL; patch if name exists.
3787
3927
  *
3788
3928
  * **Node-only** — under `shared/media/node/`; do not import from the browser entry.
3789
3929
  */
@@ -3795,18 +3935,30 @@ async function registerMediaLink(input) {
3795
3935
  if (name === "") {
3796
3936
  throw new Error("registerMediaLink: name is empty");
3797
3937
  }
3938
+ const storageProvider = input.storageProvider.trim();
3939
+ const locator = input.locator.trim();
3940
+ const localLocator = input.localLocator?.trim() ?? "";
3941
+ const httpLocator = isHttpUrl(locator);
3798
3942
  const existing = await findMediaLink({ value: input.value, name });
3799
- if (existing != null) {
3943
+ if (existing != null && !httpLocator) {
3800
3944
  logger.info("media already registered", {
3801
3945
  topic: "dedup",
3802
3946
  data: { id: existing.id, value: input.value, name },
3803
3947
  });
3804
3948
  return { id: existing.id, created: false };
3805
3949
  }
3950
+ if (existing != null && httpLocator) {
3951
+ return patchMediaOriginal(existing, storageProvider, locator);
3952
+ }
3953
+ const probeStorageProvider = httpLocator ? input.localStorageProvider.trim() : storageProvider;
3954
+ const probeLocator = httpLocator ? localLocator : locator;
3955
+ if (httpLocator && probeLocator === "") {
3956
+ throw new Error("registerMediaLink: localLocator is required when locator is http(s)");
3957
+ }
3806
3958
  const availability = await checkMediaAvailability({
3807
3959
  value: input.value,
3808
- storageProvider: input.storageProvider,
3809
- locator: input.locator,
3960
+ storageProvider: probeStorageProvider,
3961
+ locator: probeLocator,
3810
3962
  localStorageProvider: input.localStorageProvider,
3811
3963
  });
3812
3964
  if (!availability.ok || availability.absolutePath == null) {
@@ -3814,15 +3966,15 @@ async function registerMediaLink(input) {
3814
3966
  }
3815
3967
  const probed = await probeMediaOriginal({
3816
3968
  value: input.value,
3817
- storageProvider: input.storageProvider,
3818
- locator: input.locator,
3969
+ storageProvider: probeStorageProvider,
3970
+ locator: probeLocator,
3819
3971
  absolutePath: availability.absolutePath,
3820
3972
  });
3821
3973
  const draft = buildMediaLinkDraft({
3822
3974
  value: input.value,
3823
3975
  name,
3824
- storageProvider: probed.storageProvider,
3825
- locator: probed.locator,
3976
+ storageProvider: httpLocator ? storageProvider : probed.storageProvider,
3977
+ locator: httpLocator ? locator : probed.locator,
3826
3978
  contentHash: probed.contentHash,
3827
3979
  size: probed.size,
3828
3980
  mimeType: probed.mimeType,
@@ -3850,6 +4002,9 @@ async function registerMediaLink(input) {
3850
4002
  if (isCreateTargetAlreadyExistsError(error)) {
3851
4003
  const raced = await findMediaLink({ value: input.value, name });
3852
4004
  if (raced != null) {
4005
+ if (httpLocator) {
4006
+ return patchMediaOriginal(raced, storageProvider, locator);
4007
+ }
3853
4008
  logger.info("media register race — using existing", {
3854
4009
  topic: "dedup",
3855
4010
  data: { id: raced.id, value: input.value, name },
@@ -4772,5 +4927,5 @@ const patchTriggerFired = validateWithSchema(patchTriggerFiredSchema, "patchTrig
4772
4927
  }
4773
4928
  });
4774
4929
 
4775
- export { BaseNodeRuntime, COLLECT_LOG_RUNNER_KEY, CategoryCommand, CategoryLink, CategoryNode, CategoryRepo, CategoryTrigger, CommandType, EMPTY_REGISTRY_SLOT_RUNTIME_STATE, LOG_SPOOL_SERVICE_ID_ENV, LOG_TOPIC_TRIGGER, LogLevel, MAX_POLL_TARGET_LIST_SIZE, MEDIA_CONTENT_HASH_ALGORITHM, ManagedChildProcesses, NodeStatus, PROVIDER_TELEGRAM, RepoManager, ResultCode, SERVICE_GUARD_RUNNER_KEY, ServiceGuardNode, ServiceRegistryError, TASK_LOCAL_PACKAGE_CONFIG_FILENAME, TASK_REPO_SCRIPT_CATEGORY, TASK_REPO_USAGE, TASK_RUNNER_CONFIG_DIR, TASK_RUNNER_ROOT_CONFIG_FILENAME, TASK_RUNNER_ROOT_CONFIG_LEGACY_RELATIVE_PATH, TASK_RUNNER_ROOT_CONFIG_RELATIVE_PATH, TRIGGER_LOOP_INTERVAL_MS, TRIGGER_RUNNER_DEFAULT_RETRY_COUNT, TRIGGER_RUNNER_DEFAULT_RETRY_DELAY_MS, TaskManager, TaskNode, TaskRepoValidation, TaskStatus, TaskStatusAction, TriggerManager, TriggerNode, TriggerStatus, applyRegistrySlotGuardStep, buildMediaLinkDraft, buildNodeImportArgs, callTelegramApi, checkFeedLocalAvailability, checkFeedOssAvailability, checkMediaAvailability, claimServiceRegistrySlot, createJsonFileStateStore, createL3ChildLauncher, createLogSpoolCoordinator, createLogger, createManagedChildProcesses, createPathsExistCheck, createRequiredEnvCheck, createServiceHost, createServiceRuntimeStateStore, createSupabaseReachableCheck, createTarget, createTelegramStorageProvider, downloadTelegramChunk, enableLogSpoolFromEnvInChild, encodeTelegramChunkUrl, ensureLogSpoolFromEnv, evaluateBusyNodeLiveness, fetchBinaryWithRetry, fetchWithRetry, findMediaLink, generateResponse, getConfigFileDir, getLogSpoolStats, getMainLogSpoolWriterStats, getPollCommandList, getPollCommandListSchema, getPossibleTarget, getScanRemoteRepoValues, getTarget, guardRetryAfterSec, guessMediaMime, importJsConfigModule, initSupabaseFromStandardEnv, isChildProcessRunning, isCreateTargetAlreadyExistsError, isFeedIngestSource, isFeedValue, isGuardAvailable, isHttpUrl, isLogEntry, isLogSpoolEnabled, isMediaValue, isOpaqueChunkUrl, isOptimisticLockResponse, isRetryableHttpStatus, loadCachedJsConfigModule, loadEnvFiles, logManager, logSpoolEnabledFromEnv, markWorkerSpawned, mediaLinkDedupFilters, nodeBufferToArrayBuffer, parseTelegramChunkUrl, patchChangeNodeStatus, patchChangeTaskStatus, patchClaimTask, patchNodeHeartBeat, patchServiceRuntime, patchStopNode, patchTriggerFired, patchTriggerFiredSchema, pathExists, pollTargetList, pollUntil, postCommand, postCommandSchema, postRegisterNode, postTarget, postTaskSchema, postTaskWithValidation, postTrigger, postTriggerSchema, probeMediaOriginal, publicBaseUrlFromEnv, readAndVerifySourceFile, readEnv, registerCollectLogRunner, registerFeed, registerMediaLink, registerServiceGuardRunner, registrySlotRuntimePatchFromGuardResult, requireEnv, resolveFirstExistingPath, resolveLogSpoolRoot, resolvePathFromBaseDir, resolvePathFromConfigFile, resolvePathFromCwd, resolveTelegramStorageOptions, runCollectLogTick, runReadinessChecks, runReadinessGate, runRegistrySlotGuardCheck, runServiceGuardTick, runSingleProcessService, scanEnabledTriggers, scanEnabledTriggersSchema, scanTargetList, sha256Hex, shutdownLogSpool, shutdownLogSpoolFromEnv, spawnTsxChild, supabase, telegramDownloadBinary, telegramFileDownloadUrl, toFileImportHref, updateTarget, updateTargetDetails, validateTaskRepoAndParams, validateWithSchema, waitForServiceReady };
4930
+ export { BaseNodeRuntime, COLLECT_LOG_RUNNER_KEY, CategoryCommand, CategoryLink, CategoryNode, CategoryRepo, CategoryTrigger, CommandType, EMPTY_REGISTRY_SLOT_RUNTIME_STATE, LOG_SPOOL_SERVICE_ID_ENV, LOG_TOPIC_TRIGGER, LogLevel, MAX_POLL_TARGET_LIST_SIZE, MEDIA_CONTENT_HASH_ALGORITHM, ManagedChildProcesses, NodeStatus, PROVIDER_TELEGRAM, RepoManager, ResultCode, SERVICE_GUARD_RUNNER_KEY, ServiceGuardNode, ServiceRegistryError, TASK_LOCAL_PACKAGE_CONFIG_FILENAME, TASK_REPO_SCRIPT_CATEGORY, TASK_REPO_USAGE, TASK_RUNNER_CONFIG_DIR, TASK_RUNNER_ROOT_CONFIG_FILENAME, TASK_RUNNER_ROOT_CONFIG_LEGACY_RELATIVE_PATH, TASK_RUNNER_ROOT_CONFIG_RELATIVE_PATH, TRIGGER_LOOP_INTERVAL_MS, TRIGGER_RUNNER_DEFAULT_RETRY_COUNT, TRIGGER_RUNNER_DEFAULT_RETRY_DELAY_MS, TaskManager, TaskNode, TaskRepoValidation, TaskStatus, TaskStatusAction, TriggerManager, TriggerNode, TriggerStatus, applyRegistrySlotGuardStep, buildFeedLinkDraft, buildMediaLinkDraft, buildNodeImportArgs, callTelegramApi, checkFeedLocalAvailability, checkFeedOssAvailability, checkMediaAvailability, claimServiceRegistrySlot, createFeed, createJsonFileStateStore, createL3ChildLauncher, createLogSpoolCoordinator, createLogger, createManagedChildProcesses, createPathsExistCheck, createRequiredEnvCheck, createServiceHost, createServiceRuntimeStateStore, createSupabaseReachableCheck, createTarget, createTelegramStorageProvider, downloadTelegramChunk, enableLogSpoolFromEnvInChild, encodeTelegramChunkUrl, ensureLogSpoolFromEnv, evaluateBusyNodeLiveness, feedLinkDedupFilters, fetchBinaryWithRetry, fetchWithRetry, findMediaLink, generateResponse, getConfigFileDir, getLogSpoolStats, getMainLogSpoolWriterStats, getPollCommandList, getPollCommandListSchema, getPossibleTarget, getScanRemoteRepoValues, getTarget, guardRetryAfterSec, guessMediaMime, importJsConfigModule, initSupabaseFromStandardEnv, isChildProcessRunning, isCreateTargetAlreadyExistsError, isFeedIngestSource, isFeedValue, isGuardAvailable, isHttpUrl, isLogEntry, isLogSpoolEnabled, isMediaValue, isOpaqueChunkUrl, isOptimisticLockResponse, isRetryableHttpStatus, loadCachedJsConfigModule, loadEnvFiles, logManager, logSpoolEnabledFromEnv, markWorkerSpawned, mediaLinkDedupFilters, nodeBufferToArrayBuffer, parseTelegramChunkUrl, patchChangeNodeStatus, patchChangeTaskStatus, patchClaimTask, patchNodeHeartBeat, patchServiceRuntime, patchStopNode, patchTriggerFired, patchTriggerFiredSchema, pathExists, pollTargetList, pollUntil, postCommand, postCommandSchema, postRegisterNode, postTarget, postTaskSchema, postTaskWithValidation, postTrigger, postTriggerSchema, probeMediaOriginal, publicBaseUrlFromEnv, readAndVerifySourceFile, readEnv, registerCollectLogRunner, registerFeed, registerMediaLink, registerServiceGuardRunner, registrySlotRuntimePatchFromGuardResult, requireEnv, resolveFirstExistingPath, resolveLogSpoolRoot, resolvePathFromBaseDir, resolvePathFromConfigFile, resolvePathFromCwd, resolveTelegramStorageOptions, runCollectLogTick, runReadinessChecks, runReadinessGate, runRegistrySlotGuardCheck, runServiceGuardTick, runSingleProcessService, scanEnabledTriggers, scanEnabledTriggersSchema, scanTargetList, sha256Hex, shutdownLogSpool, shutdownLogSpoolFromEnv, spawnTsxChild, supabase, telegramDownloadBinary, telegramFileDownloadUrl, toFileImportHref, updateTarget, updateTargetDetails, validateTaskRepoAndParams, validateWithSchema, waitForServiceReady };
4776
4931
  //# sourceMappingURL=node.js.map