target-supabase-sdk 0.2.21 → 0.2.23

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 (36) hide show
  1. package/dist/browser.js +1 -1
  2. package/dist/chunks/{task-queue-FygwujNS.js → task-queue-Ba8S21I6.js} +66 -20
  3. package/dist/chunks/task-queue-Ba8S21I6.js.map +1 -0
  4. package/dist/node.d.ts +2 -2
  5. package/dist/node.d.ts.map +1 -1
  6. package/dist/node.js +179 -19
  7. package/dist/node.js.map +1 -1
  8. package/dist/shared/feed/feed.build.d.ts +4 -2
  9. package/dist/shared/feed/feed.build.d.ts.map +1 -1
  10. package/dist/shared/feed/node/feed.access.d.ts +10 -2
  11. package/dist/shared/feed/node/feed.access.d.ts.map +1 -1
  12. package/dist/shared/feed/node/feed.service.d.ts +26 -1
  13. package/dist/shared/feed/node/feed.service.d.ts.map +1 -1
  14. package/dist/shared/feed/node/index.d.ts +3 -3
  15. package/dist/shared/feed/node/index.d.ts.map +1 -1
  16. package/dist/shared/http/fetch-retry.d.ts +2 -0
  17. package/dist/shared/http/fetch-retry.d.ts.map +1 -1
  18. package/dist/shared/media/node/media.service.d.ts +8 -2
  19. package/dist/shared/media/node/media.service.d.ts.map +1 -1
  20. package/dist/task/task-node.d.ts +3 -0
  21. package/dist/task/task-node.d.ts.map +1 -1
  22. package/dist/task/task.api.d.ts +14 -1
  23. package/dist/task/task.api.d.ts.map +1 -1
  24. package/package.json +1 -1
  25. package/src/node.ts +4 -0
  26. package/src/shared/feed/README.md +4 -3
  27. package/src/shared/feed/feed.build.ts +6 -3
  28. package/src/shared/feed/node/feed.access.ts +33 -6
  29. package/src/shared/feed/node/feed.service.ts +131 -4
  30. package/src/shared/feed/node/index.ts +7 -3
  31. package/src/shared/http/fetch-retry.ts +13 -2
  32. package/src/shared/media/README.md +4 -4
  33. package/src/shared/media/node/media.service.ts +77 -10
  34. package/src/task/task-node.ts +7 -1
  35. package/src/task/task.api.ts +62 -15
  36. package/dist/chunks/task-queue-FygwujNS.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":"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"}
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-FygwujNS.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 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-FygwujNS.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-Ba8S21I6.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-Ba8S21I6.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 },
@@ -4360,6 +4515,10 @@ class TaskNode extends BaseNodeRuntime {
4360
4515
  get availableTaskList() {
4361
4516
  return [...this._availableTaskList];
4362
4517
  }
4518
+ /** Optional claim filters passed to {@link patchClaimTask} (e.g. name prefix per task type). */
4519
+ getPatchClaimTaskOptions() {
4520
+ return {};
4521
+ }
4363
4522
  constructor() {
4364
4523
  super("taskNode");
4365
4524
  }
@@ -4399,6 +4558,7 @@ class TaskNode extends BaseNodeRuntime {
4399
4558
  nodeId,
4400
4559
  availableTaskList: [...availableTaskList],
4401
4560
  traceId: loopTraceId,
4561
+ ...this.getPatchClaimTaskOptions(),
4402
4562
  });
4403
4563
  if (claimError) {
4404
4564
  if (isOptimisticLockResponse(claimError)) {
@@ -4772,5 +4932,5 @@ const patchTriggerFired = validateWithSchema(patchTriggerFiredSchema, "patchTrig
4772
4932
  }
4773
4933
  });
4774
4934
 
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 };
4935
+ 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
4936
  //# sourceMappingURL=node.js.map