target-supabase-sdk 0.2.22 → 0.2.24
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/README.md +3 -3
- package/dist/browser.d.ts +2 -0
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +1 -1
- package/dist/chunks/{task-queue-DWFe0rCS.js → task-queue-C_nUaM2S.js} +260 -37
- package/dist/chunks/task-queue-C_nUaM2S.js.map +1 -0
- package/dist/link/index.d.ts +2 -0
- package/dist/link/index.d.ts.map +1 -1
- package/dist/link/link.query.d.ts +9 -0
- package/dist/link/link.query.d.ts.map +1 -0
- package/dist/node.d.ts +2 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +113 -6
- package/dist/node.js.map +1 -1
- package/dist/shared/feed/feed.query.d.ts.map +1 -1
- package/dist/shared/idea/idea.build.d.ts +35 -0
- package/dist/shared/idea/idea.build.d.ts.map +1 -0
- package/dist/shared/idea/idea.interface.d.ts +23 -0
- package/dist/shared/idea/idea.interface.d.ts.map +1 -0
- package/dist/shared/idea/idea.normalize.d.ts +3 -0
- package/dist/shared/idea/idea.normalize.d.ts.map +1 -0
- package/dist/shared/idea/idea.parse.d.ts +3 -0
- package/dist/shared/idea/idea.parse.d.ts.map +1 -0
- package/dist/shared/idea/idea.query.d.ts +6 -0
- package/dist/shared/idea/idea.query.d.ts.map +1 -0
- package/dist/shared/idea/idea.schema.d.ts +60 -0
- package/dist/shared/idea/idea.schema.d.ts.map +1 -0
- package/dist/shared/idea/index.d.ts +15 -0
- package/dist/shared/idea/index.d.ts.map +1 -0
- package/dist/shared/idea/node/idea.hash.d.ts +3 -0
- package/dist/shared/idea/node/idea.hash.d.ts.map +1 -0
- package/dist/shared/idea/node/idea.locator.d.ts +9 -0
- package/dist/shared/idea/node/idea.locator.d.ts.map +1 -0
- package/dist/shared/idea/node/index.d.ts +3 -0
- package/dist/shared/idea/node/index.d.ts.map +1 -0
- package/dist/shared/media/media.query.d.ts.map +1 -1
- package/dist/shared/review/review.query.d.ts.map +1 -1
- package/dist/shared/utils/config-path.utils.d.ts +1 -1
- package/dist/shared/utils/postgrest.utils.d.ts +1 -1
- package/dist/task/index.d.ts +1 -1
- package/dist/task/local-task-registry.d.ts +1 -1
- package/dist/task/task-node.d.ts +3 -0
- package/dist/task/task-node.d.ts.map +1 -1
- package/dist/task/task.api.d.ts +14 -1
- package/dist/task/task.api.d.ts.map +1 -1
- package/dist/trigger/trigger.api.d.ts +6 -1
- package/dist/trigger/trigger.api.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/browser.ts +21 -0
- package/src/link/index.ts +2 -0
- package/src/link/link.query.ts +18 -0
- package/src/node.ts +8 -0
- package/src/shared/feed/README.md +1 -1
- package/src/shared/feed/feed.query.ts +2 -7
- package/src/shared/idea/README.md +82 -0
- package/src/shared/idea/VALIDATION-MATRIX.md +69 -0
- package/src/shared/idea/idea.build.ts +160 -0
- package/src/shared/idea/idea.interface.ts +34 -0
- package/src/shared/idea/idea.normalize.ts +17 -0
- package/src/shared/idea/idea.parse.ts +16 -0
- package/src/shared/idea/idea.query.ts +16 -0
- package/src/shared/idea/idea.schema.ts +32 -0
- package/src/shared/idea/index.ts +21 -0
- package/src/shared/idea/node/idea.hash.ts +6 -0
- package/src/shared/idea/node/idea.locator.ts +61 -0
- package/src/shared/idea/node/index.ts +7 -0
- package/src/shared/media/README.md +1 -1
- package/src/shared/media/media.query.ts +2 -7
- package/src/shared/review/review.query.ts +2 -7
- package/src/shared/utils/config-path.utils.ts +1 -1
- package/src/shared/utils/postgrest.utils.ts +1 -1
- package/src/task/index.ts +1 -1
- package/src/task/local-task-registry.ts +1 -1
- package/src/task/task-node.ts +7 -1
- package/src/task/task.api.ts +62 -15
- package/src/trigger/trigger.api.ts +6 -1
- package/dist/chunks/task-queue-DWFe0rCS.js.map +0 -1
- package/dist/resource/resource.interface.d.ts +0 -20
- package/dist/resource/resource.interface.d.ts.map +0 -1
- package/dist/task/task.utils.d.ts +0 -1
- package/dist/task/task.utils.d.ts.map +0 -1
- package/src/resource/resource.interface.ts +0 -37
- package/src/task/task.utils.ts +0 -0
package/README.md
CHANGED
|
@@ -264,7 +264,7 @@ await registerMediaLink({
|
|
|
264
264
|
});
|
|
265
265
|
```
|
|
266
266
|
|
|
267
|
-
Details: `src/shared/media/README.md` and `.cursor/skills/
|
|
267
|
+
Details: `src/shared/media/README.md` and `.cursor/skills/link-conventions/SKILL.md`.
|
|
268
268
|
|
|
269
269
|
### Feed Links (`feed.image` / `feed.audio` / `feed.video` / `feed.image-list`)
|
|
270
270
|
|
|
@@ -292,7 +292,7 @@ await registerFeed({
|
|
|
292
292
|
});
|
|
293
293
|
```
|
|
294
294
|
|
|
295
|
-
Details: `src/shared/feed/README.md` and `.cursor/skills/
|
|
295
|
+
Details: `src/shared/feed/README.md` and `.cursor/skills/link-conventions/SKILL.md`.
|
|
296
296
|
|
|
297
297
|
### PostgREST filter helpers (0.2.15+)
|
|
298
298
|
|
|
@@ -303,7 +303,7 @@ When using `supabase.client` directly (e.g. `ilike` search or `text[]` tag filte
|
|
|
303
303
|
| `escapeIlikePattern` | User input for `.ilike()` / `.or("col.ilike.%…%")` — escapes `%` `_` `\` and strips `,` |
|
|
304
304
|
| `toPostgrestTextArrayLiteral` | `.overlaps("tagList", …)` and `.filter("tagList", "not.ov", …)` — **never** `.not("tagList", "ov", jsArray)` |
|
|
305
305
|
|
|
306
|
-
Pitfalls and examples: `.cursor/skills/
|
|
306
|
+
Pitfalls and examples: `.cursor/skills/target-list-query/SKILL.md`.
|
|
307
307
|
|
|
308
308
|
## Development
|
|
309
309
|
|
package/dist/browser.d.ts
CHANGED
|
@@ -44,6 +44,8 @@ export type { BuildFeedLinkDraftInput, FeedOriginal, FeedSource, FeedValue } fro
|
|
|
44
44
|
export { buildFeedLinkDraft, buildFeedLinkName, FEED_VALUES, feedLinkDedupFilters, isFeedValue, } from "./shared/feed";
|
|
45
45
|
export type { FetchInitFactory, FetchRetryOptions } from "./shared/http/fetch-retry";
|
|
46
46
|
export { fetchBinaryWithRetry, fetchWithRetry, isRetryableHttpStatus, requestHasBody, } from "./shared/http/fetch-retry";
|
|
47
|
+
export type { BuildIdeaImageLinkDraftInput, BuildIdeaLinkDraftInput, IdeaCreateSchemaInput, IdeaOriginal, IdeaUpdateSchemaInput, } from "./shared/idea";
|
|
48
|
+
export { buildIdeaImageLinkDraft, buildIdeaLinkDraft, IDEA_IMAGE_LINK_NAME, IDEA_IMAGE_TAG_RAW, IDEA_IMAGE_TEMP_DIR, IDEA_LINK_VALUE, ideaCreateSchema, ideaLinkValueFilters, ideaUpdateSchema, isIdeaImageLinkName, normalizeStringList, parseIdeaOriginal, } from "./shared/idea";
|
|
47
49
|
export type { CreateLoggerInput, DecodedLogBatch, FlatLogEntry, LogEntry, LoggerWithScope, LogScope, LogScopePatch, } from "./shared/log";
|
|
48
50
|
export { createLogger, decodeLogBatch, decodeLogBatchList, flattenLogBatch, flattenLogBatches, isLogBatchList, isLogEntry, LOG_BATCH_LOADER_KEY, LOG_MIN_LEVEL_ENV_KEY, LOG_PERSIST_LOADER_KEY, LogLevel, logManager, logMinLevelFromEnv, parseLogBatchMeta, resolveLogMinLevel, } from "./shared/log";
|
|
49
51
|
export type { BuildMediaLinkDraftInput, MediaOriginal, MediaValue } from "./shared/media";
|
package/dist/browser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
package/dist/browser.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as ApiMethod, C as CategoryConfig, a as CategoryExtraction, b as CategoryLink, c as CategoryNode, d as CategoryParcel, e as CategoryRepo, f as CategoryService, g as CategoryTask, D as DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS, E as EMPTY_REGISTRY_SLOT_RUNTIME_STATE, F as FEED_VALUES, L as LINK_MANIFEST_VERSION,
|
|
1
|
+
export { A as ApiMethod, C as CategoryConfig, a as CategoryExtraction, b as CategoryLink, c as CategoryNode, d as CategoryParcel, e as CategoryRepo, f as CategoryService, g as CategoryTask, D as DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS, E as EMPTY_REGISTRY_SLOT_RUNTIME_STATE, F as FEED_VALUES, I as IDEA_IMAGE_LINK_NAME, h as IDEA_IMAGE_TAG_RAW, i as IDEA_IMAGE_TEMP_DIR, j as IDEA_LINK_VALUE, L as LINK_MANIFEST_VERSION, k as LIST_MANIFEST_VERSION, M as MEDIA_CONTENT_HASH_ALGORITHM, l as MEDIA_CONTENT_HASH_PREFIX_LENGTH, m as MEDIA_VALUES, N as NodeStatus, P as POST_TASK_DEFAULT_MAX_ATTEMPTS, n as ParcelManager, o as PostLinkValidator, R as ResultCode, S as ServiceLifecycleStatus, p as ServiceRegistryError, q as ServiceSlotStatus, T as TARGET_SYSTEM_REGISTRY_KEY, r as TASK_REPO_USAGE, s as TaskStatus, t as TaskStatusAction, u as apiDetailsSchema, v as appendSystemRegistryEmptySlots, w as assertRegistrySlotAvailable, x as assertRegistrySlotOwner, y as buildEmptyServiceSlots, z as buildFeedLinkDraft, B as buildFeedLinkName, G as buildIdeaImageLinkDraft, H as buildIdeaLinkDraft, J as buildLinkTargetDraft, K as buildListTargetDraft, O as buildMediaLinkDraft, Q as buildMediaNameFromLocator, U as buildReviewLinkDraft, V as buildSystemRegistryConfigDetails, W as claimServiceRegistrySlot, X as classifyNetworkError, Y as countTasksByType, Z as createActiveServiceLifecycle, _ as createClaimedRegistrySlotRuntimeState, $ as createStorageProviderRegistry, a0 as createUploadTracker, a1 as decodeLogBatch, a2 as decodeLogBatchList, a3 as defaultL3ServiceDetails, a4 as deleteParcel, a5 as deleteParcelSchema, a6 as escapeIlikePattern, a7 as evaluateBusyNodeLiveness, a8 as feedLinkDedupFilters, a9 as fetchBinaryWithRetry, aa as fetchWithRetry, ab as fieldDefinitionSchema, ac as flattenLogBatch, ad as flattenLogBatches, ae as formatNetworkError, af as getApi, ag as getApiSchema, ah as getConfig, ai as getConfigSchema, aj as getExtraction, ak as getExtractionSchema, al as getParcel, am as getParcelSchema, an as getScanRemoteRepoValues, ao as getScanRemoteRepoValuesSchema, ap as getService, aq as getServiceSchema, ar as getTargetSystemRegistry, as as getValueAtPath, at as guessMediaMime, au as ideaCreateSchema, av as ideaLinkValueFilters, aw as ideaUpdateSchema, ax as installChunkFetchRegistry, ay as isFeedValue, az as isHttpUrl, aA as isIdeaImageLinkName, aB as isLocalFilesystemPath, aC as isLogBatchList, aD as isLogEntry, aE as isMediaValue, aF as isOpaqueChunkUrl, aG as isRetryableHttpStatus, aH as linkDedupFilters, aI as linkTargetDraftBuildInputSchema, aJ as mediaLinkDedupFilters, aK as normalizeStringList, aL as parcelDetailsSchema, aM as parseIdeaOriginal, aN as parseLogBatchMeta, aO as parseProviderPrefixedUrl, aP as parseServiceSlot, aQ as parseServiceSlots, aR as patchChangeNodeStatus, aS as patchChangeNodeStatusSchema, aT as patchChangeTaskStatus, aU as patchChangeTaskStatusSchema, aV as patchClaimTask, aW as patchClaimTaskSchema, aX as patchExtractionObjects, aY as patchExtractionObjectsSchema, aZ as patchNodeHeartBeat, a_ as patchNodeHeartBeatSchema, a$ as patchServiceRuntime, b0 as patchStopNode, b1 as patchStopNodeSchema, b2 as patchTaskProgress, b3 as patchTaskProgressSchema, b4 as postApi, b5 as postApiSchema, b6 as postExtraction, b7 as postExtractionSchema, b8 as postLinkCreate, b9 as postParcel, ba as postParcelSchema, bb as postRegisterNode, bc as postRegisterNodeSchema, bd as postService, be as postServiceInstance, bf as postServiceSchema, bg as postSystemRegistryConfig, bh as postSystemRegistryConfigSchema, bi as postTask, bj as postTaskSchema, bk as postTaskWithRetry, bl as publishParcel, bm as registerProviderChunkResolver, bn as registerService, bo as registerServiceAtStartup, bp as registrySlotRuntimePatchFromGuardResult, bq as releaseSystemRegistrySlots, br as releaseSystemRegistrySlotsByServiceId, bs as requestHasBody, bt as resetSystemRegistryConfig, bu as resetSystemRegistryConfigSchema, bv as resolveActiveRegistryServiceId, bw as resolveFetchUrl, bx as restoreParcel, by as restoreParcelById, bz as reviewLinksForNameFilters, bA as runRegistrySlotGuardCheck, bB as sanitizeFileName, bC as sanitizeParcelFileName, bD as scanExtractionList, bE as scanExtractionListSchema, bF as schemaDefinitionSchema, bG as serviceDetailsSchema, bH as serviceLifecycleSchema, bI as serviceNodeSnapshotSchema, bJ as serviceRuntimeSchema, bK as sha256Hex, bL as summarizeTaskQueue, bM as systemRegistrySeedSlotSchema, bN as toPostgrestTextArrayLiteral, bO as unregisterService, bP as unregisterServiceAtShutdown } from './chunks/task-queue-C_nUaM2S.js';
|
|
2
2
|
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, d as LogLevel, M as MAX_POLL_TARGET_LIST_SIZE, 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, g as createLogger, h as createTarget, i as deleteTarget, j as formatZodError, k as generateResponse, l as getPossibleTarget, m as getTarget, n as getTargetList, o as getTargetTotalCount, p as handleSupabaseError, q as isCreateTargetAlreadyExistsError, r as isDevEnvironment, s as isOptimisticLockError, t as isOptimisticLockResponse, u as logDev, v as logDevGroup, w as logManager, x as logMinLevelFromEnv, y as patchTarget, z as pollTargetList, A as postListCreate, D as postLogListCreate, E as postTarget, F as postTargetPayloadSchema, G as queryFilterSchema, H as resolveLogMinLevel, I as safeParseWithSchema, J as scanTargetList, K as supabase, N as targetDraftSchema, Q as updateTarget, R as updateTargetDetails, T as validateWith, V as validateWithSchema } from './chunks/list.api-BzbTJBsM.js';
|
|
3
3
|
import 'zod';
|
|
4
4
|
import 'lodash-es';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { V as validateWithSchema, m as getTarget, l as getPossibleTarget, c as LOG_PERSIST_LOADER_KEY, k as generateResponse, R as updateTargetDetails, g as createLogger, h as createTarget, q as isCreateTargetAlreadyExistsError, J as scanTargetList, B as BaseValidator, a as CategoryList, i as deleteTarget, s as isOptimisticLockError, n as getTargetList, f as OPTIMISTIC_LOCK_FAILED_MESSAGE, O as OPTIMISTIC_LOCK_ERROR_CODE, w as logManager } from './list.api-BzbTJBsM.js';
|
|
1
|
+
import { V as validateWithSchema, m as getTarget, l as getPossibleTarget, c as LOG_PERSIST_LOADER_KEY, k as generateResponse, R as updateTargetDetails, g as createLogger, h as createTarget, q as isCreateTargetAlreadyExistsError, J as scanTargetList, B as BaseValidator, a as CategoryList, i as deleteTarget, s as isOptimisticLockError, n as getTargetList, f as OPTIMISTIC_LOCK_FAILED_MESSAGE, O as OPTIMISTIC_LOCK_ERROR_CODE, K as supabase, w as logManager } from './list.api-BzbTJBsM.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
|
|
4
4
|
var CategoryConfig;
|
|
@@ -418,6 +418,16 @@ function buildLinkTargetDraft(input) {
|
|
|
418
418
|
};
|
|
419
419
|
}
|
|
420
420
|
|
|
421
|
+
/** Shared Link filters used by feed, media, and review query helpers. */
|
|
422
|
+
function linkDedupFilters(input) {
|
|
423
|
+
const name = input.name.trim();
|
|
424
|
+
return [
|
|
425
|
+
{ field: "category", operator: "eq", value: CategoryLink.LINK },
|
|
426
|
+
{ field: "value", operator: "eq", value: input.value },
|
|
427
|
+
{ field: "name", operator: "eq", value: name },
|
|
428
|
+
];
|
|
429
|
+
}
|
|
430
|
+
|
|
421
431
|
const LIST_MANIFEST_VERSION = 0;
|
|
422
432
|
function isLinkTargetDraftBuildInput(item) {
|
|
423
433
|
return linkTargetDraftBuildInputSchema.safeParse(item).success;
|
|
@@ -2643,12 +2653,7 @@ function buildFeedLinkDraft(input) {
|
|
|
2643
2653
|
|
|
2644
2654
|
/** Dedup key: `category=link` + `value` + `name` (matches register / find). */
|
|
2645
2655
|
function feedLinkDedupFilters(input) {
|
|
2646
|
-
|
|
2647
|
-
return [
|
|
2648
|
-
{ field: "category", operator: "eq", value: CategoryLink.LINK },
|
|
2649
|
-
{ field: "value", operator: "eq", value: input.value },
|
|
2650
|
-
{ field: "name", operator: "eq", value: name },
|
|
2651
|
-
];
|
|
2656
|
+
return linkDedupFilters(input);
|
|
2652
2657
|
}
|
|
2653
2658
|
|
|
2654
2659
|
const RETRYABLE_CAUSE_CODES = new Set([
|
|
@@ -2872,6 +2877,192 @@ async function fetchBinaryWithRetry(url, init, options) {
|
|
|
2872
2877
|
return response.arrayBuffer();
|
|
2873
2878
|
}
|
|
2874
2879
|
|
|
2880
|
+
/**
|
|
2881
|
+
* Idea Link protocol — Link rows with `value` / `loaderKey` === {@link IDEA_LINK_VALUE}.
|
|
2882
|
+
* Clipboard images use fixed `name` {@link IDEA_IMAGE_LINK_NAME} (not a separate value).
|
|
2883
|
+
*/
|
|
2884
|
+
const IDEA_LINK_VALUE = "idea";
|
|
2885
|
+
/** Link.name for clipboard-image ideas (distinct from title-based text ideas). */
|
|
2886
|
+
const IDEA_IMAGE_LINK_NAME = "idea.image";
|
|
2887
|
+
/** Default tag for raw captures (quick-note, paste-image). Leading `.` = system tag. */
|
|
2888
|
+
const IDEA_IMAGE_TAG_RAW = ".raw";
|
|
2889
|
+
/** Temp sandbox prefix for pasted images (`TEMP_FS_ROOT` on upload-service). */
|
|
2890
|
+
const IDEA_IMAGE_TEMP_DIR = "idea/paste";
|
|
2891
|
+
function isIdeaImageLinkName(name) {
|
|
2892
|
+
return name.trim() === IDEA_IMAGE_LINK_NAME;
|
|
2893
|
+
}
|
|
2894
|
+
|
|
2895
|
+
/** Trim, dedupe, and drop empty strings from tag/review lists. */
|
|
2896
|
+
function normalizeStringList(raw) {
|
|
2897
|
+
if (raw == null || raw.length === 0) {
|
|
2898
|
+
return [];
|
|
2899
|
+
}
|
|
2900
|
+
const seen = new Set();
|
|
2901
|
+
const out = [];
|
|
2902
|
+
for (const item of raw) {
|
|
2903
|
+
const text = item.trim();
|
|
2904
|
+
if (text === "" || seen.has(text)) {
|
|
2905
|
+
continue;
|
|
2906
|
+
}
|
|
2907
|
+
seen.add(text);
|
|
2908
|
+
out.push(text);
|
|
2909
|
+
}
|
|
2910
|
+
return out;
|
|
2911
|
+
}
|
|
2912
|
+
|
|
2913
|
+
function resolveIdeaOriginal(input) {
|
|
2914
|
+
const content = input.content.trim();
|
|
2915
|
+
if (content === "") {
|
|
2916
|
+
throw new Error("buildIdeaLinkDraft: content is empty");
|
|
2917
|
+
}
|
|
2918
|
+
if (content.length > 100_000) {
|
|
2919
|
+
throw new Error("buildIdeaLinkDraft: content exceeds 100000 characters");
|
|
2920
|
+
}
|
|
2921
|
+
const url = input.url?.trim() ?? "";
|
|
2922
|
+
if (url.length > 2000) {
|
|
2923
|
+
throw new Error("buildIdeaLinkDraft: url exceeds 2000 characters");
|
|
2924
|
+
}
|
|
2925
|
+
const reviewList = normalizeStringList(input.reviewList);
|
|
2926
|
+
if (reviewList.length > 32) {
|
|
2927
|
+
throw new Error("buildIdeaLinkDraft: reviewList exceeds 32 entries");
|
|
2928
|
+
}
|
|
2929
|
+
for (const entry of reviewList) {
|
|
2930
|
+
if (entry.length > 8000) {
|
|
2931
|
+
throw new Error("buildIdeaLinkDraft: reviewList entry exceeds 8000 characters");
|
|
2932
|
+
}
|
|
2933
|
+
}
|
|
2934
|
+
return {
|
|
2935
|
+
content,
|
|
2936
|
+
reviewList,
|
|
2937
|
+
url,
|
|
2938
|
+
heat: Math.max(0, Math.floor(input.heat ?? 0)),
|
|
2939
|
+
};
|
|
2940
|
+
}
|
|
2941
|
+
/**
|
|
2942
|
+
* Assemble a text idea {@link Link} draft (`category=link`, `loaderKey === value === "idea"`).
|
|
2943
|
+
* Does not write to Supabase or enforce title uniqueness.
|
|
2944
|
+
*/
|
|
2945
|
+
function buildIdeaLinkDraft(input) {
|
|
2946
|
+
const name = input.name.trim();
|
|
2947
|
+
if (name === "") {
|
|
2948
|
+
throw new Error("buildIdeaLinkDraft: name is empty");
|
|
2949
|
+
}
|
|
2950
|
+
if (name.length > 500) {
|
|
2951
|
+
throw new Error("buildIdeaLinkDraft: name exceeds 500 characters");
|
|
2952
|
+
}
|
|
2953
|
+
if (isIdeaImageLinkName(name)) {
|
|
2954
|
+
throw new Error("buildIdeaLinkDraft: name is reserved for image ideas; use buildIdeaImageLinkDraft");
|
|
2955
|
+
}
|
|
2956
|
+
const tagList = normalizeStringList(input.tagList);
|
|
2957
|
+
if (tagList.length > 32) {
|
|
2958
|
+
throw new Error("buildIdeaLinkDraft: tagList exceeds 32 entries");
|
|
2959
|
+
}
|
|
2960
|
+
for (const tag of tagList) {
|
|
2961
|
+
if (tag.length > 128) {
|
|
2962
|
+
throw new Error("buildIdeaLinkDraft: tag exceeds 128 characters");
|
|
2963
|
+
}
|
|
2964
|
+
}
|
|
2965
|
+
const original = resolveIdeaOriginal({
|
|
2966
|
+
content: input.content,
|
|
2967
|
+
reviewList: input.reviewList,
|
|
2968
|
+
url: input.url,
|
|
2969
|
+
heat: input.heat,
|
|
2970
|
+
});
|
|
2971
|
+
return buildLinkTargetDraft({
|
|
2972
|
+
name,
|
|
2973
|
+
value: IDEA_LINK_VALUE,
|
|
2974
|
+
description: input.description ?? "",
|
|
2975
|
+
preview: input.preview ?? "",
|
|
2976
|
+
loaderKey: IDEA_LINK_VALUE,
|
|
2977
|
+
tagList,
|
|
2978
|
+
original,
|
|
2979
|
+
});
|
|
2980
|
+
}
|
|
2981
|
+
/**
|
|
2982
|
+
* Assemble a clipboard-image idea Link (`name=idea.image`, `value=idea`).
|
|
2983
|
+
* Caller stores bytes and supplies hash + temp URL; no dedup by content hash.
|
|
2984
|
+
*/
|
|
2985
|
+
function buildIdeaImageLinkDraft(input) {
|
|
2986
|
+
const contentHash = input.contentHash.trim();
|
|
2987
|
+
if (contentHash === "") {
|
|
2988
|
+
throw new Error("buildIdeaImageLinkDraft: contentHash is empty");
|
|
2989
|
+
}
|
|
2990
|
+
if (contentHash.length > 100_000) {
|
|
2991
|
+
throw new Error("buildIdeaImageLinkDraft: contentHash exceeds 100000 characters");
|
|
2992
|
+
}
|
|
2993
|
+
const url = input.url.trim();
|
|
2994
|
+
if (url === "") {
|
|
2995
|
+
throw new Error("buildIdeaImageLinkDraft: url is empty");
|
|
2996
|
+
}
|
|
2997
|
+
if (url.length > 2000) {
|
|
2998
|
+
throw new Error("buildIdeaImageLinkDraft: url exceeds 2000 characters");
|
|
2999
|
+
}
|
|
3000
|
+
const tagList = normalizeStringList(input.tagList ?? [IDEA_IMAGE_TAG_RAW]);
|
|
3001
|
+
if (tagList.length === 0) {
|
|
3002
|
+
throw new Error("buildIdeaImageLinkDraft: tagList is empty");
|
|
3003
|
+
}
|
|
3004
|
+
const original = {
|
|
3005
|
+
content: contentHash,
|
|
3006
|
+
reviewList: [],
|
|
3007
|
+
url,
|
|
3008
|
+
heat: Math.max(0, Math.floor(input.heat ?? 0)),
|
|
3009
|
+
};
|
|
3010
|
+
return buildLinkTargetDraft({
|
|
3011
|
+
name: IDEA_IMAGE_LINK_NAME,
|
|
3012
|
+
value: IDEA_LINK_VALUE,
|
|
3013
|
+
description: input.description ?? "",
|
|
3014
|
+
preview: input.preview ?? "",
|
|
3015
|
+
loaderKey: IDEA_LINK_VALUE,
|
|
3016
|
+
tagList,
|
|
3017
|
+
original,
|
|
3018
|
+
});
|
|
3019
|
+
}
|
|
3020
|
+
|
|
3021
|
+
/** Runtime shape of `Link.details.original` for value=idea. */
|
|
3022
|
+
const ideaOriginalSchema = z.object({
|
|
3023
|
+
content: z.string().trim().min(1).max(100_000),
|
|
3024
|
+
reviewList: z.array(z.string().trim().min(1).max(8000)).max(32).default([]),
|
|
3025
|
+
url: z.string().trim().max(2000).default(""),
|
|
3026
|
+
heat: z.number().int().min(0).default(0),
|
|
3027
|
+
});
|
|
3028
|
+
const ideaTagSchema = z.string().trim().min(1).max(128);
|
|
3029
|
+
/** HTTP / API create body limits (upload-service `POST /v0/upload/idea`). */
|
|
3030
|
+
const ideaCreateSchema = z.object({
|
|
3031
|
+
name: z.string().trim().min(1, "name is required").max(500),
|
|
3032
|
+
content: z.string().trim().min(1, "content is required").max(100_000),
|
|
3033
|
+
reviewList: z.array(z.string().trim().min(1).max(8000)).max(32).default([]),
|
|
3034
|
+
url: z.string().trim().max(2000).default(""),
|
|
3035
|
+
tagList: z.array(ideaTagSchema).max(32).default([]),
|
|
3036
|
+
});
|
|
3037
|
+
const ideaUpdateSchema = z.object({
|
|
3038
|
+
name: z.string().trim().min(1).max(500).optional(),
|
|
3039
|
+
content: z.string().trim().min(1).max(100_000).optional(),
|
|
3040
|
+
reviewList: z.array(z.string().trim().min(1).max(8000)).max(32).optional(),
|
|
3041
|
+
url: z.string().trim().max(2000).optional(),
|
|
3042
|
+
tagList: z.array(ideaTagSchema).max(32).optional(),
|
|
3043
|
+
});
|
|
3044
|
+
|
|
3045
|
+
function parseIdeaOriginal(original) {
|
|
3046
|
+
const parsed = ideaOriginalSchema.safeParse(original);
|
|
3047
|
+
if (!parsed.success) {
|
|
3048
|
+
return null;
|
|
3049
|
+
}
|
|
3050
|
+
return {
|
|
3051
|
+
content: parsed.data.content,
|
|
3052
|
+
reviewList: normalizeStringList(parsed.data.reviewList),
|
|
3053
|
+
url: parsed.data.url,
|
|
3054
|
+
heat: parsed.data.heat,
|
|
3055
|
+
};
|
|
3056
|
+
}
|
|
3057
|
+
|
|
3058
|
+
/** List/get filters: `category=link` and `value=idea` (do not filter on `details.loaderKey`). */
|
|
3059
|
+
function ideaLinkValueFilters() {
|
|
3060
|
+
return [
|
|
3061
|
+
{ field: "category", operator: "eq", value: CategoryLink.LINK },
|
|
3062
|
+
{ field: "value", operator: "eq", value: IDEA_LINK_VALUE },
|
|
3063
|
+
];
|
|
3064
|
+
}
|
|
3065
|
+
|
|
2875
3066
|
/**
|
|
2876
3067
|
* Media Link protocol — Link rows with value/loaderKey in {@link MEDIA_VALUES}.
|
|
2877
3068
|
* No separate Target category; category remains `link`.
|
|
@@ -3024,12 +3215,7 @@ function buildMediaNameFromLocator(locator, contentHash) {
|
|
|
3024
3215
|
|
|
3025
3216
|
/** Dedup key: `category=link` + `value` + `name` (matches register / find). */
|
|
3026
3217
|
function mediaLinkDedupFilters(input) {
|
|
3027
|
-
|
|
3028
|
-
return [
|
|
3029
|
-
{ field: "category", operator: "eq", value: CategoryLink.LINK },
|
|
3030
|
-
{ field: "value", operator: "eq", value: input.value },
|
|
3031
|
-
{ field: "name", operator: "eq", value: name },
|
|
3032
|
-
];
|
|
3218
|
+
return linkDedupFilters(input);
|
|
3033
3219
|
}
|
|
3034
3220
|
|
|
3035
3221
|
/**
|
|
@@ -3066,12 +3252,7 @@ function buildReviewLinkDraft(input) {
|
|
|
3066
3252
|
* Many rows may match — the SDK does not define dedup for reviews.
|
|
3067
3253
|
*/
|
|
3068
3254
|
function reviewLinksForNameFilters(name) {
|
|
3069
|
-
|
|
3070
|
-
return [
|
|
3071
|
-
{ field: "category", operator: "eq", value: CategoryLink.LINK },
|
|
3072
|
-
{ field: "value", operator: "eq", value: REVIEW_VALUE },
|
|
3073
|
-
{ field: "name", operator: "eq", value: trimmed },
|
|
3074
|
-
];
|
|
3255
|
+
return linkDedupFilters({ value: REVIEW_VALUE, name });
|
|
3075
3256
|
}
|
|
3076
3257
|
|
|
3077
3258
|
/** Read a dotted path (e.g. `data.items`) from a parsed JSON value. */
|
|
@@ -3095,7 +3276,7 @@ function getValueAtPath(value, path) {
|
|
|
3095
3276
|
/**
|
|
3096
3277
|
* PostgREST / Supabase JS client helpers for `target` table filters.
|
|
3097
3278
|
*
|
|
3098
|
-
* @see `.cursor/skills/
|
|
3279
|
+
* @see `.cursor/skills/target-list-query/SKILL.md`
|
|
3099
3280
|
*/
|
|
3100
3281
|
/**
|
|
3101
3282
|
* Escape `%`, `_`, and `\` for PostgREST `ilike` patterns.
|
|
@@ -3285,9 +3466,24 @@ const patchTaskProgressSchema = z.object({
|
|
|
3285
3466
|
});
|
|
3286
3467
|
const patchClaimTaskSchema = z.object({
|
|
3287
3468
|
nodeId: nodeIdSchema,
|
|
3469
|
+
/** Task `value` must be in this list (always applied). */
|
|
3288
3470
|
availableTaskList: z.array(z.string()).min(1),
|
|
3289
3471
|
traceId: traceIdSchema$1,
|
|
3472
|
+
/**
|
|
3473
|
+
* Optional second axis on `name` (AND with `availableTaskList`, not coupled to `value`).
|
|
3474
|
+
* When non-empty: `name` must equal a prefix or start with `prefix:`; query uses PostgREST `ilike`.
|
|
3475
|
+
*/
|
|
3476
|
+
namePrefixList: z.array(z.string().trim().min(1)).optional(),
|
|
3290
3477
|
});
|
|
3478
|
+
/** `name === prefix` or `name.startsWith(prefix + ':')` via `name ilike 'prefix%'`. */
|
|
3479
|
+
function buildClaimTaskNamePrefixFilterBuilder(namePrefixes) {
|
|
3480
|
+
const base = supabase.client.from("target").select("*");
|
|
3481
|
+
if (namePrefixes.length === 1) {
|
|
3482
|
+
return base.ilike("name", `${escapeIlikePattern(namePrefixes[0])}%`);
|
|
3483
|
+
}
|
|
3484
|
+
const nameOrParts = namePrefixes.map((prefix) => `name.ilike.${escapeIlikePattern(prefix)}%`);
|
|
3485
|
+
return base.or(nameOrParts.join(","));
|
|
3486
|
+
}
|
|
3291
3487
|
// ─── Optimistic lock helpers ─────────────────────────────────────────────────
|
|
3292
3488
|
function lockOnStatus(...allowed) {
|
|
3293
3489
|
if (allowed.length === 1) {
|
|
@@ -3463,30 +3659,57 @@ const patchTaskProgress = validateWithSchema(patchTaskProgressSchema, "patchTask
|
|
|
3463
3659
|
/**
|
|
3464
3660
|
* Discover and claim one TODO task for this node.
|
|
3465
3661
|
*
|
|
3466
|
-
*
|
|
3662
|
+
* Match criteria (all required): `details.status = TODO`, `value ∈ availableTaskList`, and when
|
|
3663
|
+
* `namePrefixList` is non-empty, `name` matches any listed prefix. Those filters are independent
|
|
3664
|
+
* (AND); omitting `namePrefixList` does not relax the `value` constraint.
|
|
3665
|
+
*
|
|
3666
|
+
* Flow: oldest matching row (FIFO by `created_at`) → {@link claimTaskById}.
|
|
3467
3667
|
* Equivalent to `patchChangeTaskStatus({ id, action: CLAIM, nodeId })` when `id` is already known.
|
|
3468
3668
|
*
|
|
3469
3669
|
* Returns `data: null` when no TODO task matches.
|
|
3470
3670
|
* Optimistic lock conflicts return `{ error, code: OPTIMISTIC_LOCK_ERROR_CODE }` (not thrown).
|
|
3471
3671
|
*/
|
|
3472
|
-
const patchClaimTask = validateWithSchema(patchClaimTaskSchema, "patchClaimTaskSchema")(async ({ nodeId, availableTaskList, traceId }) => {
|
|
3672
|
+
const patchClaimTask = validateWithSchema(patchClaimTaskSchema, "patchClaimTaskSchema")(async ({ nodeId, availableTaskList, traceId, namePrefixList }) => {
|
|
3473
3673
|
const logger = createLogger({ module: "patchClaimTask", traceId, labels: { nodeId } });
|
|
3674
|
+
const namePrefixes = (namePrefixList ?? []).map((prefix) => prefix.trim()).filter((prefix) => prefix !== "");
|
|
3675
|
+
function taskNameMatchesPrefixList(name) {
|
|
3676
|
+
return namePrefixes.some((prefix) => name === prefix || name.startsWith(`${prefix}:`));
|
|
3677
|
+
}
|
|
3474
3678
|
let todoTask;
|
|
3475
3679
|
try {
|
|
3476
|
-
|
|
3477
|
-
|
|
3478
|
-
|
|
3479
|
-
|
|
3480
|
-
|
|
3481
|
-
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
|
|
3485
|
-
|
|
3486
|
-
|
|
3487
|
-
|
|
3680
|
+
if (namePrefixes.length === 0) {
|
|
3681
|
+
const { data: taskCandidates } = await getTargetList({
|
|
3682
|
+
category: CategoryTask.TASK,
|
|
3683
|
+
filterList: [
|
|
3684
|
+
{ field: TASK_STATUS_FIELD, operator: "eq", value: TaskStatus.TODO },
|
|
3685
|
+
{ field: "value", operator: "in", value: availableTaskList },
|
|
3686
|
+
],
|
|
3687
|
+
limit: 1,
|
|
3688
|
+
orderBy: { field: "created_at", ascending: true },
|
|
3689
|
+
});
|
|
3690
|
+
const possibleTask = taskCandidates?.[0] ?? null;
|
|
3691
|
+
if (possibleTask == null) {
|
|
3692
|
+
return generateResponse.success(null);
|
|
3693
|
+
}
|
|
3694
|
+
todoTask = possibleTask;
|
|
3695
|
+
}
|
|
3696
|
+
else {
|
|
3697
|
+
const { data: taskCandidates } = await getTargetList({
|
|
3698
|
+
category: CategoryTask.TASK,
|
|
3699
|
+
filterList: [
|
|
3700
|
+
{ field: TASK_STATUS_FIELD, operator: "eq", value: TaskStatus.TODO },
|
|
3701
|
+
{ field: "value", operator: "in", value: availableTaskList },
|
|
3702
|
+
],
|
|
3703
|
+
limit: 1,
|
|
3704
|
+
orderBy: { field: "created_at", ascending: true },
|
|
3705
|
+
filterBuilder: buildClaimTaskNamePrefixFilterBuilder(namePrefixes),
|
|
3706
|
+
});
|
|
3707
|
+
const possibleTask = taskCandidates?.find((task) => taskNameMatchesPrefixList(task.name)) ?? null;
|
|
3708
|
+
if (possibleTask == null) {
|
|
3709
|
+
return generateResponse.success(null);
|
|
3710
|
+
}
|
|
3711
|
+
todoTask = possibleTask;
|
|
3488
3712
|
}
|
|
3489
|
-
todoTask = possibleTask;
|
|
3490
3713
|
}
|
|
3491
3714
|
catch (error) {
|
|
3492
3715
|
const message = getErrorMessage(error);
|
|
@@ -3648,5 +3871,5 @@ function summarizeTaskQueue(tasks, taskType, statuses) {
|
|
|
3648
3871
|
return tasks.filter((task) => task.value === taskType && statuses.includes(task.details.status)).length;
|
|
3649
3872
|
}
|
|
3650
3873
|
|
|
3651
|
-
export {
|
|
3652
|
-
//# sourceMappingURL=task-queue-
|
|
3874
|
+
export { createStorageProviderRegistry as $, ApiMethod as A, buildFeedLinkName as B, CategoryConfig as C, DEFAULT_SYSTEM_REGISTRY_SEED_SLOTS as D, EMPTY_REGISTRY_SLOT_RUNTIME_STATE as E, FEED_VALUES as F, buildIdeaImageLinkDraft as G, buildIdeaLinkDraft as H, IDEA_IMAGE_LINK_NAME as I, buildLinkTargetDraft as J, buildListTargetDraft as K, LINK_MANIFEST_VERSION as L, MEDIA_CONTENT_HASH_ALGORITHM as M, NodeStatus as N, buildMediaLinkDraft as O, POST_TASK_DEFAULT_MAX_ATTEMPTS as P, buildMediaNameFromLocator as Q, ResultCode as R, ServiceLifecycleStatus as S, TARGET_SYSTEM_REGISTRY_KEY as T, buildReviewLinkDraft as U, buildSystemRegistryConfigDetails as V, claimServiceRegistrySlot as W, classifyNetworkError as X, countTasksByType as Y, createActiveServiceLifecycle as Z, createClaimedRegistrySlotRuntimeState as _, CategoryExtraction as a, patchServiceRuntime as a$, createUploadTracker as a0, decodeLogBatch as a1, decodeLogBatchList as a2, defaultL3ServiceDetails as a3, deleteParcel as a4, deleteParcelSchema as a5, escapeIlikePattern as a6, evaluateBusyNodeLiveness as a7, feedLinkDedupFilters as a8, fetchBinaryWithRetry as a9, isIdeaImageLinkName as aA, isLocalFilesystemPath as aB, isLogBatchList as aC, isLogEntry as aD, isMediaValue as aE, isOpaqueChunkUrl as aF, isRetryableHttpStatus as aG, linkDedupFilters as aH, linkTargetDraftBuildInputSchema as aI, mediaLinkDedupFilters as aJ, normalizeStringList as aK, parcelDetailsSchema as aL, parseIdeaOriginal as aM, parseLogBatchMeta as aN, parseProviderPrefixedUrl as aO, parseServiceSlot as aP, parseServiceSlots as aQ, patchChangeNodeStatus as aR, patchChangeNodeStatusSchema as aS, patchChangeTaskStatus as aT, patchChangeTaskStatusSchema as aU, patchClaimTask as aV, patchClaimTaskSchema as aW, patchExtractionObjects as aX, patchExtractionObjectsSchema as aY, patchNodeHeartBeat as aZ, patchNodeHeartBeatSchema as a_, fetchWithRetry as aa, fieldDefinitionSchema as ab, flattenLogBatch as ac, flattenLogBatches as ad, formatNetworkError as ae, getApi as af, getApiSchema as ag, getConfig as ah, getConfigSchema as ai, getExtraction as aj, getExtractionSchema as ak, getParcel as al, getParcelSchema as am, getScanRemoteRepoValues as an, getScanRemoteRepoValuesSchema as ao, getService as ap, getServiceSchema as aq, getTargetSystemRegistry as ar, getValueAtPath as as, guessMediaMime as at, ideaCreateSchema as au, ideaLinkValueFilters as av, ideaUpdateSchema as aw, installChunkFetchRegistry as ax, isFeedValue as ay, isHttpUrl as az, CategoryLink as b, patchStopNode as b0, patchStopNodeSchema as b1, patchTaskProgress as b2, patchTaskProgressSchema as b3, postApi as b4, postApiSchema as b5, postExtraction as b6, postExtractionSchema as b7, postLinkCreate as b8, postParcel as b9, runRegistrySlotGuardCheck as bA, sanitizeFileName as bB, sanitizeParcelFileName as bC, scanExtractionList as bD, scanExtractionListSchema as bE, schemaDefinitionSchema as bF, serviceDetailsSchema as bG, serviceLifecycleSchema as bH, serviceNodeSnapshotSchema as bI, serviceRuntimeSchema as bJ, sha256Hex as bK, summarizeTaskQueue as bL, systemRegistrySeedSlotSchema as bM, toPostgrestTextArrayLiteral as bN, unregisterService as bO, unregisterServiceAtShutdown as bP, getErrorMessage as bQ, LOG_TOPIC_NODE as bR, isFeedIngestSource as bS, resolveFeedOriginalStorageProvider as bT, buildFeedTagList as bU, LOG_TOPIC_TASK as bV, CRITICAL_UNKNOWN_TASK_TRACE_ID as bW, toError as bX, createTaskRow as bY, FEED_INGEST_SOURCES as bZ, postParcelSchema as ba, postRegisterNode as bb, postRegisterNodeSchema as bc, postService as bd, postServiceInstance as be, postServiceSchema as bf, postSystemRegistryConfig as bg, postSystemRegistryConfigSchema as bh, postTask as bi, postTaskSchema as bj, postTaskWithRetry as bk, publishParcel as bl, registerProviderChunkResolver as bm, registerService as bn, registerServiceAtStartup as bo, registrySlotRuntimePatchFromGuardResult as bp, releaseSystemRegistrySlots as bq, releaseSystemRegistrySlotsByServiceId as br, requestHasBody as bs, resetSystemRegistryConfig as bt, resetSystemRegistryConfigSchema as bu, resolveActiveRegistryServiceId as bv, resolveFetchUrl as bw, restoreParcel as bx, restoreParcelById as by, reviewLinksForNameFilters as bz, CategoryNode as c, CategoryParcel as d, CategoryRepo as e, CategoryService as f, CategoryTask as g, IDEA_IMAGE_TAG_RAW as h, IDEA_IMAGE_TEMP_DIR as i, IDEA_LINK_VALUE as j, LIST_MANIFEST_VERSION as k, MEDIA_CONTENT_HASH_PREFIX_LENGTH as l, MEDIA_VALUES as m, ParcelManager as n, PostLinkValidator as o, ServiceRegistryError as p, ServiceSlotStatus as q, TASK_REPO_USAGE as r, TaskStatus as s, TaskStatusAction as t, apiDetailsSchema as u, appendSystemRegistryEmptySlots as v, assertRegistrySlotAvailable as w, assertRegistrySlotOwner as x, buildEmptyServiceSlots as y, buildFeedLinkDraft as z };
|
|
3875
|
+
//# sourceMappingURL=task-queue-C_nUaM2S.js.map
|