node-type-registry 0.25.0 → 0.26.0

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.
@@ -0,0 +1,2 @@
1
+ import type { NodeTypeDefinition } from '../types';
2
+ export declare const AuthzFilePath: NodeTypeDefinition;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuthzFilePath = void 0;
4
+ exports.AuthzFilePath = {
5
+ name: 'AuthzFilePath',
6
+ slug: 'authz_file_path',
7
+ category: 'authz',
8
+ display_name: 'File Path Share',
9
+ description: 'Path-scoped file sharing via ltree containment. Grants access when a path_shares row matches the current user, bucket, and an ancestor path with the required permission.',
10
+ parameter_schema: {
11
+ type: 'object',
12
+ properties: {
13
+ shares_schema: {
14
+ type: 'string',
15
+ description: 'Schema of the path_shares table'
16
+ },
17
+ shares_table: {
18
+ type: 'string',
19
+ description: 'Name of the path_shares table'
20
+ },
21
+ files_schema: {
22
+ type: 'string',
23
+ description: 'Schema of the files table (used to qualify column references inside the EXISTS subquery)'
24
+ },
25
+ files_table: {
26
+ type: 'string',
27
+ description: 'Name of the files table (used to qualify column references inside the EXISTS subquery)'
28
+ },
29
+ permission_field: {
30
+ type: 'string',
31
+ format: 'column-ref',
32
+ description: 'Boolean column on the path_shares table that grants the required permission (e.g. can_read, can_write)'
33
+ },
34
+ bucket_field: {
35
+ type: 'string',
36
+ format: 'column-ref',
37
+ description: 'Column on the files table referencing the bucket',
38
+ default: 'bucket_id'
39
+ },
40
+ path_field: {
41
+ type: 'string',
42
+ format: 'column-ref',
43
+ description: 'Ltree column on the files table representing the file path',
44
+ default: 'path'
45
+ }
46
+ },
47
+ required: [
48
+ 'shares_schema',
49
+ 'shares_table',
50
+ 'files_table',
51
+ 'permission_field'
52
+ ]
53
+ },
54
+ tags: [
55
+ 'storage',
56
+ 'authz'
57
+ ]
58
+ };
package/authz/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export { AuthzAllowAll } from './authz-allow-all';
2
2
  export { AuthzAppMembership } from './authz-app-membership';
3
3
  export { AuthzComposite } from './authz-composite';
4
4
  export { AuthzDenyAll } from './authz-deny-all';
5
+ export { AuthzFilePath } from './authz-file-path';
5
6
  export { AuthzDirectOwner } from './authz-direct-owner';
6
7
  export { AuthzDirectOwnerAny } from './authz-direct-owner-any';
7
8
  export { AuthzEntityMembership } from './authz-entity-membership';
package/authz/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AuthzTemporal = exports.AuthzRelatedPeerOwnership = exports.AuthzRelatedMemberList = exports.AuthzRelatedEntityMembership = exports.AuthzPublishable = exports.AuthzPeerOwnership = exports.AuthzOrgHierarchy = exports.AuthzNotReadOnly = exports.AuthzMemberList = exports.AuthzEntityMembership = exports.AuthzDirectOwnerAny = exports.AuthzDirectOwner = exports.AuthzDenyAll = exports.AuthzComposite = exports.AuthzAppMembership = exports.AuthzAllowAll = void 0;
3
+ exports.AuthzTemporal = exports.AuthzRelatedPeerOwnership = exports.AuthzRelatedMemberList = exports.AuthzRelatedEntityMembership = exports.AuthzPublishable = exports.AuthzPeerOwnership = exports.AuthzOrgHierarchy = exports.AuthzNotReadOnly = exports.AuthzMemberList = exports.AuthzEntityMembership = exports.AuthzDirectOwnerAny = exports.AuthzDirectOwner = exports.AuthzFilePath = exports.AuthzDenyAll = exports.AuthzComposite = exports.AuthzAppMembership = exports.AuthzAllowAll = void 0;
4
4
  var authz_allow_all_1 = require("./authz-allow-all");
5
5
  Object.defineProperty(exports, "AuthzAllowAll", { enumerable: true, get: function () { return authz_allow_all_1.AuthzAllowAll; } });
6
6
  var authz_app_membership_1 = require("./authz-app-membership");
@@ -9,6 +9,8 @@ var authz_composite_1 = require("./authz-composite");
9
9
  Object.defineProperty(exports, "AuthzComposite", { enumerable: true, get: function () { return authz_composite_1.AuthzComposite; } });
10
10
  var authz_deny_all_1 = require("./authz-deny-all");
11
11
  Object.defineProperty(exports, "AuthzDenyAll", { enumerable: true, get: function () { return authz_deny_all_1.AuthzDenyAll; } });
12
+ var authz_file_path_1 = require("./authz-file-path");
13
+ Object.defineProperty(exports, "AuthzFilePath", { enumerable: true, get: function () { return authz_file_path_1.AuthzFilePath; } });
12
14
  var authz_direct_owner_1 = require("./authz-direct-owner");
13
15
  Object.defineProperty(exports, "AuthzDirectOwner", { enumerable: true, get: function () { return authz_direct_owner_1.AuthzDirectOwner; } });
14
16
  var authz_direct_owner_any_1 = require("./authz-direct-owner-any");
@@ -1,2 +1,14 @@
1
1
  import type { NodeTypeDefinition } from '../types';
2
+ /**
3
+ * Image-specific preset of DataFileEmbedding.
4
+ *
5
+ * At the SQL layer, data_image_embedding delegates entirely to
6
+ * data_file_embedding, merging image-specific defaults before forwarding.
7
+ * The parameter schema here is intentionally identical to DataFileEmbedding;
8
+ * only the defaults differ (dimensions: 512, task: process_image_embedding,
9
+ * mime_patterns: ['image/%']).
10
+ *
11
+ * Kept as a separate node type for backward compatibility — existing
12
+ * blueprints that reference DataImageEmbedding continue to work unchanged.
13
+ */
2
14
  export declare const DataImageEmbedding: NodeTypeDefinition;
@@ -1,15 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DataImageEmbedding = void 0;
4
+ /**
5
+ * Image-specific preset of DataFileEmbedding.
6
+ *
7
+ * At the SQL layer, data_image_embedding delegates entirely to
8
+ * data_file_embedding, merging image-specific defaults before forwarding.
9
+ * The parameter schema here is intentionally identical to DataFileEmbedding;
10
+ * only the defaults differ (dimensions: 512, task: process_image_embedding,
11
+ * mime_patterns: ['image/%']).
12
+ *
13
+ * Kept as a separate node type for backward compatibility — existing
14
+ * blueprints that reference DataImageEmbedding continue to work unchanged.
15
+ */
4
16
  exports.DataImageEmbedding = {
5
17
  name: 'DataImageEmbedding',
6
18
  slug: 'data_image_embedding',
7
19
  category: 'data',
8
20
  display_name: 'Image Embedding',
9
- description: 'Composition wrapper that creates a vector embedding field with HNSW/IVFFlat index (via SearchVector) and a job trigger with compound conditions (via DataJobTrigger) that fires on INSERT for image files matching mime_type patterns. Designed for storage file tables.',
21
+ description: 'Image-specific preset of DataFileEmbedding. Delegates to DataFileEmbedding ' +
22
+ 'with image-oriented defaults: dimensions=512 (CLIP), mime_patterns=[\'image/%\'], ' +
23
+ 'task_identifier=\'process_image_embedding\', direct mode (no extraction). ' +
24
+ 'Accepts all DataFileEmbedding parameters — any overrides are forwarded through.',
10
25
  parameter_schema: {
11
26
  type: 'object',
12
27
  properties: {
28
+ // ── Vector config (passed through to DataFileEmbedding) ──────────
13
29
  field_name: {
14
30
  type: 'string',
15
31
  format: 'column-ref',
@@ -18,47 +34,48 @@ exports.DataImageEmbedding = {
18
34
  },
19
35
  dimensions: {
20
36
  type: 'integer',
21
- description: 'Vector dimensions',
37
+ description: 'Vector dimensions (default 512 for CLIP-style image embeddings)',
22
38
  default: 512
23
39
  },
24
40
  index_method: {
25
41
  type: 'string',
26
- enum: [
27
- 'hnsw',
28
- 'ivfflat'
29
- ],
42
+ enum: ['hnsw', 'ivfflat'],
30
43
  description: 'Index type for similarity search',
31
44
  default: 'hnsw'
32
45
  },
33
46
  metric: {
34
47
  type: 'string',
35
- enum: [
36
- 'cosine',
37
- 'l2',
38
- 'ip'
39
- ],
48
+ enum: ['cosine', 'l2', 'ip'],
40
49
  description: 'Distance metric',
41
50
  default: 'cosine'
42
51
  },
52
+ index_options: {
53
+ type: 'object',
54
+ description: 'Index-specific options. HNSW: {m, ef_construction}. IVFFlat: {lists}.',
55
+ default: {}
56
+ },
57
+ // ── MIME scoping ───────────────────────────────────────────────
58
+ mime_patterns: {
59
+ type: 'array',
60
+ items: { type: 'string' },
61
+ description: 'MIME type LIKE patterns to match. Multiple patterns are OR\'d together.',
62
+ default: ['image/%']
63
+ },
64
+ // ── Job routing ────────────────────────────────────────────────
43
65
  task_identifier: {
44
66
  type: 'string',
45
- description: 'Job task identifier for the embedding worker',
67
+ description: 'Job task identifier for the image embedding worker',
46
68
  default: 'process_image_embedding'
47
69
  },
48
- mime_patterns: {
70
+ events: {
49
71
  type: 'array',
50
- items: {
51
- type: 'string'
52
- },
53
- description: 'MIME type LIKE patterns to match (e.g., image/%, video/%). Multiple patterns are OR\'d together.',
54
- default: ['image/%']
72
+ items: { type: 'string', enum: ['INSERT', 'UPDATE'] },
73
+ description: 'Trigger events that fire the job',
74
+ default: ['INSERT']
55
75
  },
56
76
  payload_custom: {
57
77
  type: 'object',
58
- additionalProperties: {
59
- type: 'string',
60
- format: 'column-ref'
61
- },
78
+ additionalProperties: { type: 'string', format: 'column-ref' },
62
79
  description: 'Custom payload key-to-column mapping for the job trigger',
63
80
  default: {
64
81
  file_id: 'id',
@@ -66,6 +83,76 @@ exports.DataImageEmbedding = {
66
83
  mime_type: 'mime_type',
67
84
  bucket_id: 'bucket_id'
68
85
  }
86
+ },
87
+ trigger_conditions: {
88
+ description: 'Additional compound conditions beyond MIME filtering. ' +
89
+ 'Merged with the auto-generated MIME conditions via AND.',
90
+ 'x-codegen-type': 'TriggerCondition | TriggerCondition[]',
91
+ oneOf: [
92
+ { $ref: '#/$defs/triggerCondition' },
93
+ { type: 'array', items: { $ref: '#/$defs/triggerCondition' } }
94
+ ]
95
+ },
96
+ // ── Extraction config (optional — enables extract mode) ────────
97
+ extraction: {
98
+ type: 'object',
99
+ description: 'Text extraction configuration. Forwarded to DataFileEmbedding. ' +
100
+ 'When present, enables extract mode (e.g., OCR for images).',
101
+ properties: {
102
+ text_field: {
103
+ type: 'string',
104
+ format: 'column-ref',
105
+ description: 'Field to store extracted text',
106
+ default: 'extracted_text'
107
+ },
108
+ metadata_field: {
109
+ type: 'string',
110
+ format: 'column-ref',
111
+ description: 'JSONB field for extraction metadata',
112
+ default: 'extracted_metadata'
113
+ },
114
+ status_field: {
115
+ type: 'string',
116
+ format: 'column-ref',
117
+ description: 'Extraction lifecycle status field',
118
+ default: 'extraction_status'
119
+ }
120
+ }
121
+ },
122
+ // ── Chunking config (optional — forwarded to DataFileEmbedding) ─
123
+ chunks: {
124
+ type: 'object',
125
+ description: 'Chunking configuration. Forwarded to DataFileEmbedding. ' +
126
+ 'Only meaningful when extraction is also provided.',
127
+ properties: {
128
+ content_field_name: {
129
+ type: 'string',
130
+ format: 'column-ref',
131
+ default: 'content'
132
+ },
133
+ chunk_size: { type: 'integer', default: 1000 },
134
+ chunk_overlap: { type: 'integer', default: 200 },
135
+ chunk_strategy: {
136
+ type: 'string',
137
+ enum: ['fixed', 'sentence', 'paragraph', 'semantic'],
138
+ default: 'paragraph'
139
+ },
140
+ metadata_fields: { type: 'object' },
141
+ enqueue_chunking_job: { type: 'boolean', default: true },
142
+ chunking_task_name: { type: 'string', default: 'generate_chunks' }
143
+ }
144
+ },
145
+ // ── Stale tracking (forwarded to DataFileEmbedding) ────────────
146
+ stale_strategy: {
147
+ type: 'string',
148
+ enum: ['column', 'null', 'hash'],
149
+ description: 'Strategy for tracking embedding staleness in extract mode',
150
+ default: 'column'
151
+ },
152
+ include_stale_field: {
153
+ type: 'boolean',
154
+ description: 'Whether to include the embedding_stale boolean field',
155
+ default: true
69
156
  }
70
157
  }
71
158
  },
@@ -0,0 +1,2 @@
1
+ import type { NodeTypeDefinition } from '../types';
2
+ export declare const AuthzFilePath: NodeTypeDefinition;
@@ -0,0 +1,55 @@
1
+ export const AuthzFilePath = {
2
+ name: 'AuthzFilePath',
3
+ slug: 'authz_file_path',
4
+ category: 'authz',
5
+ display_name: 'File Path Share',
6
+ description: 'Path-scoped file sharing via ltree containment. Grants access when a path_shares row matches the current user, bucket, and an ancestor path with the required permission.',
7
+ parameter_schema: {
8
+ type: 'object',
9
+ properties: {
10
+ shares_schema: {
11
+ type: 'string',
12
+ description: 'Schema of the path_shares table'
13
+ },
14
+ shares_table: {
15
+ type: 'string',
16
+ description: 'Name of the path_shares table'
17
+ },
18
+ files_schema: {
19
+ type: 'string',
20
+ description: 'Schema of the files table (used to qualify column references inside the EXISTS subquery)'
21
+ },
22
+ files_table: {
23
+ type: 'string',
24
+ description: 'Name of the files table (used to qualify column references inside the EXISTS subquery)'
25
+ },
26
+ permission_field: {
27
+ type: 'string',
28
+ format: 'column-ref',
29
+ description: 'Boolean column on the path_shares table that grants the required permission (e.g. can_read, can_write)'
30
+ },
31
+ bucket_field: {
32
+ type: 'string',
33
+ format: 'column-ref',
34
+ description: 'Column on the files table referencing the bucket',
35
+ default: 'bucket_id'
36
+ },
37
+ path_field: {
38
+ type: 'string',
39
+ format: 'column-ref',
40
+ description: 'Ltree column on the files table representing the file path',
41
+ default: 'path'
42
+ }
43
+ },
44
+ required: [
45
+ 'shares_schema',
46
+ 'shares_table',
47
+ 'files_table',
48
+ 'permission_field'
49
+ ]
50
+ },
51
+ tags: [
52
+ 'storage',
53
+ 'authz'
54
+ ]
55
+ };
@@ -2,6 +2,7 @@ export { AuthzAllowAll } from './authz-allow-all';
2
2
  export { AuthzAppMembership } from './authz-app-membership';
3
3
  export { AuthzComposite } from './authz-composite';
4
4
  export { AuthzDenyAll } from './authz-deny-all';
5
+ export { AuthzFilePath } from './authz-file-path';
5
6
  export { AuthzDirectOwner } from './authz-direct-owner';
6
7
  export { AuthzDirectOwnerAny } from './authz-direct-owner-any';
7
8
  export { AuthzEntityMembership } from './authz-entity-membership';
@@ -2,6 +2,7 @@ export { AuthzAllowAll } from './authz-allow-all';
2
2
  export { AuthzAppMembership } from './authz-app-membership';
3
3
  export { AuthzComposite } from './authz-composite';
4
4
  export { AuthzDenyAll } from './authz-deny-all';
5
+ export { AuthzFilePath } from './authz-file-path';
5
6
  export { AuthzDirectOwner } from './authz-direct-owner';
6
7
  export { AuthzDirectOwnerAny } from './authz-direct-owner-any';
7
8
  export { AuthzEntityMembership } from './authz-entity-membership';
@@ -1,2 +1,14 @@
1
1
  import type { NodeTypeDefinition } from '../types';
2
+ /**
3
+ * Image-specific preset of DataFileEmbedding.
4
+ *
5
+ * At the SQL layer, data_image_embedding delegates entirely to
6
+ * data_file_embedding, merging image-specific defaults before forwarding.
7
+ * The parameter schema here is intentionally identical to DataFileEmbedding;
8
+ * only the defaults differ (dimensions: 512, task: process_image_embedding,
9
+ * mime_patterns: ['image/%']).
10
+ *
11
+ * Kept as a separate node type for backward compatibility — existing
12
+ * blueprints that reference DataImageEmbedding continue to work unchanged.
13
+ */
2
14
  export declare const DataImageEmbedding: NodeTypeDefinition;
@@ -1,12 +1,28 @@
1
+ /**
2
+ * Image-specific preset of DataFileEmbedding.
3
+ *
4
+ * At the SQL layer, data_image_embedding delegates entirely to
5
+ * data_file_embedding, merging image-specific defaults before forwarding.
6
+ * The parameter schema here is intentionally identical to DataFileEmbedding;
7
+ * only the defaults differ (dimensions: 512, task: process_image_embedding,
8
+ * mime_patterns: ['image/%']).
9
+ *
10
+ * Kept as a separate node type for backward compatibility — existing
11
+ * blueprints that reference DataImageEmbedding continue to work unchanged.
12
+ */
1
13
  export const DataImageEmbedding = {
2
14
  name: 'DataImageEmbedding',
3
15
  slug: 'data_image_embedding',
4
16
  category: 'data',
5
17
  display_name: 'Image Embedding',
6
- description: 'Composition wrapper that creates a vector embedding field with HNSW/IVFFlat index (via SearchVector) and a job trigger with compound conditions (via DataJobTrigger) that fires on INSERT for image files matching mime_type patterns. Designed for storage file tables.',
18
+ description: 'Image-specific preset of DataFileEmbedding. Delegates to DataFileEmbedding ' +
19
+ 'with image-oriented defaults: dimensions=512 (CLIP), mime_patterns=[\'image/%\'], ' +
20
+ 'task_identifier=\'process_image_embedding\', direct mode (no extraction). ' +
21
+ 'Accepts all DataFileEmbedding parameters — any overrides are forwarded through.',
7
22
  parameter_schema: {
8
23
  type: 'object',
9
24
  properties: {
25
+ // ── Vector config (passed through to DataFileEmbedding) ──────────
10
26
  field_name: {
11
27
  type: 'string',
12
28
  format: 'column-ref',
@@ -15,47 +31,48 @@ export const DataImageEmbedding = {
15
31
  },
16
32
  dimensions: {
17
33
  type: 'integer',
18
- description: 'Vector dimensions',
34
+ description: 'Vector dimensions (default 512 for CLIP-style image embeddings)',
19
35
  default: 512
20
36
  },
21
37
  index_method: {
22
38
  type: 'string',
23
- enum: [
24
- 'hnsw',
25
- 'ivfflat'
26
- ],
39
+ enum: ['hnsw', 'ivfflat'],
27
40
  description: 'Index type for similarity search',
28
41
  default: 'hnsw'
29
42
  },
30
43
  metric: {
31
44
  type: 'string',
32
- enum: [
33
- 'cosine',
34
- 'l2',
35
- 'ip'
36
- ],
45
+ enum: ['cosine', 'l2', 'ip'],
37
46
  description: 'Distance metric',
38
47
  default: 'cosine'
39
48
  },
49
+ index_options: {
50
+ type: 'object',
51
+ description: 'Index-specific options. HNSW: {m, ef_construction}. IVFFlat: {lists}.',
52
+ default: {}
53
+ },
54
+ // ── MIME scoping ───────────────────────────────────────────────
55
+ mime_patterns: {
56
+ type: 'array',
57
+ items: { type: 'string' },
58
+ description: 'MIME type LIKE patterns to match. Multiple patterns are OR\'d together.',
59
+ default: ['image/%']
60
+ },
61
+ // ── Job routing ────────────────────────────────────────────────
40
62
  task_identifier: {
41
63
  type: 'string',
42
- description: 'Job task identifier for the embedding worker',
64
+ description: 'Job task identifier for the image embedding worker',
43
65
  default: 'process_image_embedding'
44
66
  },
45
- mime_patterns: {
67
+ events: {
46
68
  type: 'array',
47
- items: {
48
- type: 'string'
49
- },
50
- description: 'MIME type LIKE patterns to match (e.g., image/%, video/%). Multiple patterns are OR\'d together.',
51
- default: ['image/%']
69
+ items: { type: 'string', enum: ['INSERT', 'UPDATE'] },
70
+ description: 'Trigger events that fire the job',
71
+ default: ['INSERT']
52
72
  },
53
73
  payload_custom: {
54
74
  type: 'object',
55
- additionalProperties: {
56
- type: 'string',
57
- format: 'column-ref'
58
- },
75
+ additionalProperties: { type: 'string', format: 'column-ref' },
59
76
  description: 'Custom payload key-to-column mapping for the job trigger',
60
77
  default: {
61
78
  file_id: 'id',
@@ -63,6 +80,76 @@ export const DataImageEmbedding = {
63
80
  mime_type: 'mime_type',
64
81
  bucket_id: 'bucket_id'
65
82
  }
83
+ },
84
+ trigger_conditions: {
85
+ description: 'Additional compound conditions beyond MIME filtering. ' +
86
+ 'Merged with the auto-generated MIME conditions via AND.',
87
+ 'x-codegen-type': 'TriggerCondition | TriggerCondition[]',
88
+ oneOf: [
89
+ { $ref: '#/$defs/triggerCondition' },
90
+ { type: 'array', items: { $ref: '#/$defs/triggerCondition' } }
91
+ ]
92
+ },
93
+ // ── Extraction config (optional — enables extract mode) ────────
94
+ extraction: {
95
+ type: 'object',
96
+ description: 'Text extraction configuration. Forwarded to DataFileEmbedding. ' +
97
+ 'When present, enables extract mode (e.g., OCR for images).',
98
+ properties: {
99
+ text_field: {
100
+ type: 'string',
101
+ format: 'column-ref',
102
+ description: 'Field to store extracted text',
103
+ default: 'extracted_text'
104
+ },
105
+ metadata_field: {
106
+ type: 'string',
107
+ format: 'column-ref',
108
+ description: 'JSONB field for extraction metadata',
109
+ default: 'extracted_metadata'
110
+ },
111
+ status_field: {
112
+ type: 'string',
113
+ format: 'column-ref',
114
+ description: 'Extraction lifecycle status field',
115
+ default: 'extraction_status'
116
+ }
117
+ }
118
+ },
119
+ // ── Chunking config (optional — forwarded to DataFileEmbedding) ─
120
+ chunks: {
121
+ type: 'object',
122
+ description: 'Chunking configuration. Forwarded to DataFileEmbedding. ' +
123
+ 'Only meaningful when extraction is also provided.',
124
+ properties: {
125
+ content_field_name: {
126
+ type: 'string',
127
+ format: 'column-ref',
128
+ default: 'content'
129
+ },
130
+ chunk_size: { type: 'integer', default: 1000 },
131
+ chunk_overlap: { type: 'integer', default: 200 },
132
+ chunk_strategy: {
133
+ type: 'string',
134
+ enum: ['fixed', 'sentence', 'paragraph', 'semantic'],
135
+ default: 'paragraph'
136
+ },
137
+ metadata_fields: { type: 'object' },
138
+ enqueue_chunking_job: { type: 'boolean', default: true },
139
+ chunking_task_name: { type: 'string', default: 'generate_chunks' }
140
+ }
141
+ },
142
+ // ── Stale tracking (forwarded to DataFileEmbedding) ────────────
143
+ stale_strategy: {
144
+ type: 'string',
145
+ enum: ['column', 'null', 'hash'],
146
+ description: 'Strategy for tracking embedding staleness in extract mode',
147
+ default: 'column'
148
+ },
149
+ include_stale_field: {
150
+ type: 'boolean',
151
+ description: 'Whether to include the embedding_stale boolean field',
152
+ default: true
66
153
  }
67
154
  }
68
155
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-type-registry",
3
- "version": "0.25.0",
3
+ "version": "0.26.0",
4
4
  "description": "Node type definitions for the Constructive blueprint system. Single source of truth for all Authz*, Data*, Relation*, and View* node types.",
5
5
  "author": "Constructive <developers@constructive.io>",
6
6
  "main": "index.js",
@@ -47,5 +47,5 @@
47
47
  "registry",
48
48
  "graphile"
49
49
  ],
50
- "gitHead": "7409479a981ff63a0937b5406a1c206a07b264ad"
50
+ "gitHead": "52d3f163860f219b34e7e918b2ddbf2bded7c31a"
51
51
  }