@undefineds.co/models 0.2.34 → 0.2.36

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 (120) hide show
  1. package/README.md +13 -16
  2. package/dist/agent.repository.d.ts +48 -0
  3. package/dist/agent.repository.js +1 -1
  4. package/dist/agent.schema.d.ts +24 -0
  5. package/dist/agent.schema.js +16 -5
  6. package/dist/ai-config/index.d.ts +28 -2
  7. package/dist/ai-config/index.js +154 -13
  8. package/dist/ai-model.schema.js +11 -12
  9. package/dist/ai-provider.schema.d.ts +4 -0
  10. package/dist/ai-provider.schema.js +11 -10
  11. package/dist/ai-runtime.schema.d.ts +4 -4
  12. package/dist/ai-runtime.schema.js +43 -45
  13. package/dist/approval.schema.d.ts +0 -1
  14. package/dist/approval.schema.js +2 -11
  15. package/dist/audit.schema.d.ts +0 -1
  16. package/dist/audit.schema.js +2 -11
  17. package/dist/automation-rule.schema.d.ts +63 -0
  18. package/dist/automation-rule.schema.js +51 -0
  19. package/dist/bin/udfs.js +3 -3
  20. package/dist/chat.repository.d.ts +4 -4
  21. package/dist/chat.repository.js +1 -1
  22. package/dist/chat.schema.d.ts +2 -2
  23. package/dist/chat.schema.js +3 -4
  24. package/dist/chat.utils.d.ts +7 -0
  25. package/dist/chat.utils.js +35 -6
  26. package/dist/contact.repository.d.ts +4 -4
  27. package/dist/contact.repository.js +1 -1
  28. package/dist/contact.schema.d.ts +2 -2
  29. package/dist/contact.schema.js +2 -3
  30. package/dist/credential.schema.js +21 -22
  31. package/dist/delivery.schema.d.ts +81 -0
  32. package/dist/delivery.schema.js +64 -0
  33. package/dist/evidence.schema.d.ts +38 -0
  34. package/dist/evidence.schema.js +46 -0
  35. package/dist/favorite/favorite.schema.d.ts +3 -5
  36. package/dist/favorite/favorite.schema.js +2 -3
  37. package/dist/favorite/starred-sync.d.ts +1 -1
  38. package/dist/favorite/starred-sync.js +11 -13
  39. package/dist/fixtures/contracts-chat-contact.js +3 -3
  40. package/dist/grant.schema.d.ts +2 -3
  41. package/dist/grant.schema.js +6 -9
  42. package/dist/idea.schema.d.ts +32 -0
  43. package/dist/idea.schema.js +36 -0
  44. package/dist/inbox-notification.schema.js +1 -2
  45. package/dist/index.d.ts +19 -14
  46. package/dist/index.js +20 -18
  47. package/dist/issue.repository.js +1 -1
  48. package/dist/issue.schema.js +1 -2
  49. package/dist/knowledge/knowledge-folder.schema.d.ts +1 -1
  50. package/dist/knowledge/knowledge-folder.schema.js +1 -1
  51. package/dist/message.repository.d.ts +7 -15
  52. package/dist/message.repository.js +1 -1
  53. package/dist/message.schema.d.ts +7 -11
  54. package/dist/message.schema.js +10 -12
  55. package/dist/namespaces.d.ts +0 -2
  56. package/dist/namespaces.js +122 -92
  57. package/dist/pod-storage-descriptor.d.ts +0 -6
  58. package/dist/pod-storage-descriptor.js +11 -12
  59. package/dist/profile.repository.d.ts +2 -2
  60. package/dist/profile.repository.js +2 -2
  61. package/dist/report.schema.d.ts +58 -0
  62. package/dist/report.schema.js +73 -0
  63. package/dist/repository.d.ts +15 -4
  64. package/dist/repository.js +16 -5
  65. package/dist/resource-id-defaults.d.ts +1 -12
  66. package/dist/resource-id-defaults.js +65 -72
  67. package/dist/resource-refs.d.ts +25 -0
  68. package/dist/resource-refs.js +45 -0
  69. package/dist/run.schema.d.ts +13 -17
  70. package/dist/run.schema.js +12 -13
  71. package/dist/schedule.schema.d.ts +56 -0
  72. package/dist/schedule.schema.js +46 -0
  73. package/dist/schema.d.ts +273 -194
  74. package/dist/schema.js +18 -10
  75. package/dist/session/index.d.ts +1 -1
  76. package/dist/session/index.js +1 -1
  77. package/dist/session/session.schema.d.ts +4 -6
  78. package/dist/session/session.schema.js +5 -16
  79. package/dist/session.repository.d.ts +8 -8
  80. package/dist/session.repository.js +1 -1
  81. package/dist/settings/settings.schema.d.ts +2 -0
  82. package/dist/settings/settings.schema.js +8 -3
  83. package/dist/sidecar/persistence-mapping.d.ts +1 -1
  84. package/dist/sidecar/sidecar-events.d.ts +36 -36
  85. package/dist/skill.schema.d.ts +39 -0
  86. package/dist/skill.schema.js +31 -0
  87. package/dist/task.schema.d.ts +22 -32
  88. package/dist/task.schema.js +17 -25
  89. package/dist/thread.repository.d.ts +4 -8
  90. package/dist/thread.repository.js +1 -1
  91. package/dist/thread.schema.d.ts +9 -10
  92. package/dist/thread.schema.js +24 -13
  93. package/dist/types/collaboration-blocks.d.ts +3 -1
  94. package/dist/types/message-block.d.ts +3 -1
  95. package/dist/vocab/chat.vocab.d.ts +1 -1
  96. package/dist/vocab/chat.vocab.js +1 -1
  97. package/dist/vocab/contact.vocab.d.ts +1 -1
  98. package/dist/vocab/contact.vocab.js +1 -1
  99. package/dist/vocab/index.d.ts +2 -0
  100. package/dist/vocab/index.js +2 -0
  101. package/dist/vocab/message.vocab.d.ts +1 -1
  102. package/dist/vocab/message.vocab.js +1 -1
  103. package/dist/vocab/session.vocab.d.ts +16 -0
  104. package/dist/vocab/session.vocab.js +17 -0
  105. package/dist/vocab/sidecar.vocab.d.ts +19 -1
  106. package/dist/vocab/sidecar.vocab.js +22 -4
  107. package/dist/vocab/thread.vocab.d.ts +1 -0
  108. package/dist/vocab/thread.vocab.js +1 -0
  109. package/dist/vocab/workflow.vocab.d.ts +135 -0
  110. package/dist/vocab/workflow.vocab.js +136 -0
  111. package/package.json +3 -3
  112. package/skills/solid-modeling/SKILL.md +57 -17
  113. package/dist/file/file.schema.d.ts +0 -60
  114. package/dist/file/file.schema.js +0 -53
  115. package/dist/file/index.d.ts +0 -1
  116. package/dist/file/index.js +0 -1
  117. package/dist/matrix.repository.d.ts +0 -183
  118. package/dist/matrix.repository.js +0 -20
  119. package/dist/matrix.schema.d.ts +0 -136
  120. package/dist/matrix.schema.js +0 -100
@@ -43,6 +43,7 @@ export const SCHEMA = createNamespace('schema', 'http://schema.org/', {
43
43
  CreativeWork: 'CreativeWork',
44
44
  MediaObject: 'MediaObject',
45
45
  PropertyValue: 'PropertyValue',
46
+ about: 'about',
46
47
  author: 'author',
47
48
  dateCreated: 'dateCreated',
48
49
  dateDeleted: 'dateDeleted',
@@ -52,6 +53,7 @@ export const SCHEMA = createNamespace('schema', 'http://schema.org/', {
52
53
  image: 'image',
53
54
  name: 'name',
54
55
  participant: 'participant',
56
+ reviewedBy: 'reviewedBy',
55
57
  text: 'text',
56
58
  url: 'url',
57
59
  });
@@ -87,6 +89,7 @@ export const AS = createNamespace('as', 'https://www.w3.org/ns/activitystreams#'
87
89
  audience: 'audience',
88
90
  actor: 'actor',
89
91
  object: 'object',
92
+ target: 'target',
90
93
  });
91
94
  // Company-level namespace (community-first guidance): all custom terms live under udfs:.
92
95
  // NOTE: This base URI is part of the contract.
@@ -95,10 +98,27 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
95
98
  ApprovalRequest: 'ApprovalRequest',
96
99
  AuditEntry: 'AuditEntry',
97
100
  AutonomyGrant: 'AutonomyGrant',
101
+ Idea: 'Idea',
98
102
  Issue: 'Issue',
99
103
  Task: 'Task',
104
+ Schedule: 'Schedule',
105
+ AutomationRule: 'AutomationRule',
106
+ Delivery: 'Delivery',
100
107
  Run: 'Run',
101
108
  RunStep: 'RunStep',
109
+ Evidence: 'Evidence',
110
+ Report: 'Report',
111
+ Credential: 'Credential',
112
+ ApiKeyCredential: 'ApiKeyCredential',
113
+ OAuthCredential: 'OAuthCredential',
114
+ Provider: 'Provider',
115
+ Model: 'Model',
116
+ AIConfig: 'AIConfig',
117
+ VectorStore: 'VectorStore',
118
+ IndexedFile: 'IndexedFile',
119
+ AgentStatus: 'AgentStatus',
120
+ Skill: 'Skill',
121
+ name: 'name',
102
122
  favorite: 'favorite',
103
123
  favoriteType: 'favoriteType',
104
124
  favoriteTarget: 'favoriteTarget',
@@ -113,12 +133,10 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
113
133
  hasThread: 'hasThread',
114
134
  inThread: 'inThread',
115
135
  participants: 'participants',
136
+ message: 'message',
116
137
  messageContent: 'messageContent',
117
- messageResource: 'messageResource',
118
138
  messageType: 'messageType',
119
139
  messageStatus: 'messageStatus',
120
- commandKind: 'commandKind',
121
- surfaceId: 'surfaceId',
122
140
  readBy: 'readBy',
123
141
  Contact: 'Contact',
124
142
  PersonContact: 'PersonContact',
@@ -126,7 +144,6 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
126
144
  GroupContact: 'GroupContact',
127
145
  hasContact: 'hasContact',
128
146
  contactType: 'contactType',
129
- entityUri: 'entityUri',
130
147
  externalPlatform: 'externalPlatform',
131
148
  externalId: 'externalId',
132
149
  alias: 'alias',
@@ -141,7 +158,32 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
141
158
  systemMessage: 'systemMessage',
142
159
  provider: 'provider',
143
160
  model: 'model',
161
+ displayName: 'displayName',
162
+ proxyUrl: 'proxyUrl',
163
+ hasModel: 'hasModel',
164
+ defaultModel: 'defaultModel',
165
+ modelType: 'modelType',
166
+ isProvidedBy: 'isProvidedBy',
167
+ dimension: 'dimension',
168
+ supportsBackend: 'supportsBackend',
169
+ rotationPolicy: 'rotationPolicy',
144
170
  metadata: 'metadata',
171
+ root: 'root',
172
+ webId: 'webId',
173
+ hasSkill: 'hasSkill',
174
+ skill: 'skill',
175
+ enabled: 'enabled',
176
+ version: 'version',
177
+ checksum: 'checksum',
178
+ loadPolicy: 'loadPolicy',
179
+ credentialSource: 'credentialSource',
180
+ backend: 'backend',
181
+ runtime: 'runtime',
182
+ transport: 'transport',
183
+ endpoint: 'endpoint',
184
+ authorityPolicy: 'authorityPolicy',
185
+ toolPolicy: 'toolPolicy',
186
+ runtimeSnapshot: 'runtimeSnapshot',
145
187
  tools: 'tools',
146
188
  contextWindow: 'contextWindow',
147
189
  contextRound: 'contextRound',
@@ -153,6 +195,17 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
153
195
  syncStatus: 'syncStatus',
154
196
  localPath: 'localPath',
155
197
  isDefault: 'isDefault',
198
+ service: 'service',
199
+ label: 'label',
200
+ lastUsedAt: 'lastUsedAt',
201
+ failCount: 'failCount',
202
+ rateLimitResetAt: 'rateLimitResetAt',
203
+ oauthRefreshToken: 'oauthRefreshToken',
204
+ oauthAccessToken: 'oauthAccessToken',
205
+ oauthExpiresAt: 'oauthExpiresAt',
206
+ projectId: 'projectId',
207
+ organizationId: 'organizationId',
208
+ secretType: 'secretType',
156
209
  settingKey: 'settingKey',
157
210
  settingValue: 'settingValue',
158
211
  settingType: 'settingType',
@@ -161,13 +214,34 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
161
214
  inbox: 'inbox',
162
215
  issue: 'issue',
163
216
  task: 'task',
164
- triggerKind: 'triggerKind',
165
- cron: 'cron',
166
- intervalSeconds: 'intervalSeconds',
167
- eventName: 'eventName',
168
- nextRunAt: 'nextRunAt',
169
- lastRunAt: 'lastRunAt',
217
+ schedule: 'schedule',
218
+ automationRule: 'automationRule',
219
+ delivery: 'delivery',
220
+ deliveryKind: 'deliveryKind',
221
+ scheduleKind: 'scheduleKind',
222
+ ruleKind: 'ruleKind',
223
+ instruction: 'instruction',
224
+ input: 'input',
225
+ trigger: 'trigger',
226
+ condition: 'condition',
227
+ actions: 'actions',
228
+ objective: 'objective',
229
+ payload: 'payload',
230
+ projection: 'projection',
231
+ target: 'target',
232
+ targetThread: 'targetThread',
233
+ targetSession: 'targetSession',
234
+ projectedRole: 'projectedRole',
235
+ consumedAt: 'consumedAt',
170
236
  priority: 'priority',
237
+ commitment: 'commitment',
238
+ affectedArea: 'affectedArea',
239
+ currentUnderstanding: 'currentUnderstanding',
240
+ openQuestions: 'openQuestions',
241
+ conflicts: 'conflicts',
242
+ nextStep: 'nextStep',
243
+ promotedTo: 'promotedTo',
244
+ sourceMessage: 'sourceMessage',
171
245
  parentIssue: 'parentIssue',
172
246
  session: 'session',
173
247
  status: 'status',
@@ -187,6 +261,7 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
187
261
  body: 'body',
188
262
  tags: 'tags',
189
263
  source: 'source',
264
+ sourceKind: 'sourceKind',
190
265
  sourceHash: 'sourceHash',
191
266
  compiledAt: 'compiledAt',
192
267
  compiledFrom: 'compiledFrom',
@@ -208,10 +283,10 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
208
283
  videoModel: 'videoModel',
209
284
  chatType: 'chatType',
210
285
  workspace: 'workspace',
211
- container: 'workspace',
286
+ container: 'container',
212
287
  policyRef: 'policyRef',
213
288
  policyVersion: 'policyVersion',
214
- parentThreadId: 'parentThreadId',
289
+ parentThread: 'parentThread',
215
290
  sessionStatus: 'sessionStatus',
216
291
  runner: 'runner',
217
292
  prompt: 'prompt',
@@ -221,12 +296,44 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
221
296
  heartbeatAt: 'heartbeatAt',
222
297
  cancelRequestedAt: 'cancelRequestedAt',
223
298
  startedAt: 'startedAt',
299
+ startsAt: 'startsAt',
300
+ createdAt: 'createdAt',
301
+ updatedAt: 'updatedAt',
224
302
  completedAt: 'completedAt',
303
+ nextRunAt: 'nextRunAt',
304
+ lastRunAt: 'lastRunAt',
305
+ lastTriggeredAt: 'lastTriggeredAt',
306
+ lastRunStatus: 'lastRunStatus',
307
+ cron: 'cron',
308
+ intervalSeconds: 'intervalSeconds',
309
+ timezone: 'timezone',
225
310
  error: 'error',
226
- runId: 'runId',
227
311
  run: 'run',
312
+ stepType: 'stepType',
313
+ evidence: 'evidence',
314
+ evidenceKind: 'evidenceKind',
315
+ report: 'report',
316
+ reportKind: 'reportKind',
317
+ subject: 'subject',
318
+ outcome: 'outcome',
319
+ artifact: 'artifact',
320
+ metricFacts: 'metricFacts',
321
+ publishedAt: 'publishedAt',
322
+ reviewer: 'reviewer',
228
323
  sessionTool: 'sessionTool',
229
324
  tokenUsage: 'tokenUsage',
325
+ embeddingModel: 'embeddingModel',
326
+ previousModel: 'previousModel',
327
+ migrationStatus: 'migrationStatus',
328
+ migrationProgress: 'migrationProgress',
329
+ chunkingStrategy: 'chunkingStrategy',
330
+ fileUrl: 'fileUrl',
331
+ vectorId: 'vectorId',
332
+ usageBytes: 'usageBytes',
333
+ lastError: 'lastError',
334
+ indexedAt: 'indexedAt',
335
+ lastActivityAt: 'lastActivityAt',
336
+ errorMessage: 'errorMessage',
230
337
  groupOwner: 'groupOwner',
231
338
  groupAdmin: 'groupAdmin',
232
339
  senderName: 'senderName',
@@ -234,8 +341,9 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
234
341
  mentions: 'mentions',
235
342
  replyTo: 'replyTo',
236
343
  routedBy: 'routedBy',
237
- routeTargetAgentId: 'routeTargetAgentId',
344
+ routeTargetAgent: 'routeTargetAgent',
238
345
  coordinationId: 'coordinationId',
346
+ agent: 'agent',
239
347
  toolCallId: 'toolCallId',
240
348
  toolName: 'toolName',
241
349
  toolArguments: 'toolArguments',
@@ -254,87 +362,9 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
254
362
  taskSteps: 'taskSteps',
255
363
  currentStep: 'currentStep',
256
364
  totalSteps: 'totalSteps',
257
- // Matrix protocol adapter
258
- MatrixAccount: 'MatrixAccount',
259
- MatrixRoom: 'MatrixRoom',
260
- MatrixEvent: 'MatrixEvent',
261
- matrixUserId: 'matrixUserId',
262
- matrixDeviceId: 'matrixDeviceId',
263
- matrixAccessTokenHash: 'matrixAccessTokenHash',
264
- matrixRoomId: 'matrixRoomId',
265
- matrixRoomAlias: 'matrixRoomAlias',
266
- matrixRoomVersion: 'matrixRoomVersion',
267
- matrixEventId: 'matrixEventId',
268
- matrixEventType: 'matrixEventType',
269
- matrixStateKey: 'matrixStateKey',
270
- matrixSender: 'matrixSender',
271
- matrixSenderWebId: 'matrixSenderWebId',
272
- matrixTxnId: 'matrixTxnId',
273
- matrixDepth: 'matrixDepth',
274
- matrixOriginServerTs: 'matrixOriginServerTs',
275
- matrixUnsigned: 'matrixUnsigned',
276
365
  // Favorites V2
277
366
  sourceModule: 'sourceModule',
278
- sourceId: 'sourceId',
279
367
  searchText: 'searchText',
280
368
  snapshotMeta: 'snapshotMeta',
281
369
  });
282
370
  export const UDFS_NAMESPACE = UDFS.NAMESPACE;
283
- export const XPOD_CREDENTIAL = createNamespace('cred', 'https://vocab.xpod.dev/credential#', {
284
- Credential: 'Credential',
285
- ApiKeyCredential: 'ApiKeyCredential',
286
- OAuthCredential: 'OAuthCredential',
287
- provider: 'provider',
288
- service: 'service',
289
- status: 'status',
290
- apiKey: 'apiKey',
291
- baseUrl: 'baseUrl',
292
- proxyUrl: 'proxyUrl',
293
- label: 'label',
294
- isDefault: 'isDefault',
295
- lastUsedAt: 'lastUsedAt',
296
- failCount: 'failCount',
297
- rateLimitResetAt: 'rateLimitResetAt',
298
- oauthRefreshToken: 'oauthRefreshToken',
299
- oauthAccessToken: 'oauthAccessToken',
300
- oauthExpiresAt: 'oauthExpiresAt',
301
- projectId: 'projectId',
302
- organizationId: 'organizationId',
303
- });
304
- export const XPOD_AI = createNamespace('ai', 'https://vocab.xpod.dev/ai#', {
305
- Provider: 'Provider',
306
- Model: 'Model',
307
- AIConfig: 'AIConfig',
308
- VectorStore: 'VectorStore',
309
- IndexedFile: 'IndexedFile',
310
- AgentStatus: 'AgentStatus',
311
- baseUrl: 'baseUrl',
312
- proxyUrl: 'proxyUrl',
313
- hasModel: 'hasModel',
314
- defaultModel: 'defaultModel',
315
- displayName: 'displayName',
316
- modelType: 'modelType',
317
- isProvidedBy: 'isProvidedBy',
318
- dimension: 'dimension',
319
- status: 'status',
320
- createdAt: 'createdAt',
321
- updatedAt: 'updatedAt',
322
- embeddingModel: 'embeddingModel',
323
- previousModel: 'previousModel',
324
- migrationStatus: 'migrationStatus',
325
- migrationProgress: 'migrationProgress',
326
- name: 'name',
327
- container: 'container',
328
- chunkingStrategy: 'chunkingStrategy',
329
- lastActiveAt: 'lastActiveAt',
330
- lastActivityAt: 'lastActivityAt',
331
- fileUrl: 'fileUrl',
332
- vectorId: 'vectorId',
333
- usageBytes: 'usageBytes',
334
- lastError: 'lastError',
335
- indexedAt: 'indexedAt',
336
- agentId: 'agentId',
337
- startedAt: 'startedAt',
338
- currentTaskId: 'currentTaskId',
339
- errorMessage: 'errorMessage',
340
- });
@@ -22,12 +22,6 @@ export interface PodModelDescriptor {
22
22
  storage: {
23
23
  base: string;
24
24
  resourceIdPattern: string;
25
- /**
26
- * @deprecated subjectTemplate exists only for legacy fragment layouts.
27
- * New descriptors should express exact base-relative ids through
28
- * resourceIdPattern and store those ids directly.
29
- */
30
- subjectTemplate?: string;
31
25
  };
32
26
  fields: Record<string, PodModelFieldDescriptor>;
33
27
  uniqueBy: string[];
@@ -1,57 +1,56 @@
1
- import { XPOD_CREDENTIAL } from './namespaces.js';
1
+ import { UDFS } from './namespaces.js';
2
2
  export const credentialDescriptor = {
3
- uri: XPOD_CREDENTIAL.Credential,
3
+ uri: UDFS.Credential,
4
4
  version: '1.0.0',
5
5
  source: 'official',
6
6
  trustLevel: 'high',
7
- namespace: XPOD_CREDENTIAL.NAMESPACE,
8
- class: XPOD_CREDENTIAL.Credential,
7
+ namespace: UDFS.NAMESPACE,
8
+ class: UDFS.Credential,
9
9
  resourceKind: 'credential',
10
10
  description: 'Generic credential material required by runtimes, tools, MCP servers, and providers.',
11
11
  storage: {
12
12
  base: '/settings/credentials.ttl',
13
13
  resourceIdPattern: '#{id}',
14
- subjectTemplate: '#{id}',
15
14
  },
16
15
  fields: {
17
16
  id: {
18
17
  type: 'string',
19
- predicate: XPOD_CREDENTIAL.term('id'),
18
+ predicate: UDFS.term('id'),
20
19
  required: true,
21
20
  description: 'Local credential id.',
22
21
  },
23
22
  service: {
24
23
  type: 'string',
25
- predicate: XPOD_CREDENTIAL.service,
24
+ predicate: UDFS.service,
26
25
  required: true,
27
26
  description: 'Credential service grouping, for example ai or infra.',
28
27
  },
29
28
  providerId: {
30
29
  type: 'string',
31
- predicate: XPOD_CREDENTIAL.provider,
30
+ predicate: UDFS.provider,
32
31
  required: true,
33
32
  description: 'Provider identifier such as openai or cloudflare.',
34
33
  },
35
34
  secretType: {
36
35
  type: 'string',
37
- predicate: XPOD_CREDENTIAL.term('secretType'),
36
+ predicate: UDFS.secretType,
38
37
  required: true,
39
38
  description: 'Provider-specific secret kind such as api-key or tunnel-token.',
40
39
  },
41
40
  label: {
42
41
  type: 'string',
43
- predicate: XPOD_CREDENTIAL.label,
42
+ predicate: UDFS.label,
44
43
  description: 'User-facing credential label.',
45
44
  },
46
45
  apiKey: {
47
46
  type: 'string',
48
- predicate: XPOD_CREDENTIAL.apiKey,
47
+ predicate: UDFS.apiKey,
49
48
  secret: true,
50
49
  description: 'Secret token or API key material.',
51
50
  },
52
51
  status: {
53
52
  type: 'string',
54
- predicate: XPOD_CREDENTIAL.status,
53
+ predicate: UDFS.status,
55
54
  description: 'Credential health status.',
56
55
  },
57
56
  },
@@ -1,4 +1,4 @@
1
- import { type AnyPodTable } from './repository.js';
1
+ import { type AnyPodResource } from './repository.js';
2
2
  import { type SolidProfileRow } from './profile.schema.js';
3
3
  export interface SolidProfileIdentity {
4
4
  webId: string;
@@ -7,7 +7,7 @@ export interface SolidProfileIdentity {
7
7
  username: string;
8
8
  }
9
9
  export interface SolidProfileRepositoryReader {
10
- findByIri?(table: AnyPodTable, iri: string): Promise<unknown | null>;
10
+ findByIri(resource: AnyPodResource, iri: string): Promise<unknown>;
11
11
  }
12
12
  export declare const profileRepository: {
13
13
  findByWebId(db: SolidProfileRepositoryReader, webId: string): Promise<SolidProfileRow | null>;
@@ -3,7 +3,7 @@ import { definePodRepository } from './repository.js';
3
3
  import { solidProfileResource, } from './profile.schema.js';
4
4
  const baseProfileRepository = definePodRepository({
5
5
  namespace: 'profile',
6
- table: solidProfileResource,
6
+ resource: solidProfileResource,
7
7
  searchableFields: ['name', 'nick'],
8
8
  disableMutations: {
9
9
  create: true,
@@ -17,7 +17,7 @@ export const profileRepository = {
17
17
  if (!webId.trim()) {
18
18
  return null;
19
19
  }
20
- return await db.findByIri?.(solidProfileResource, webId) ?? null;
20
+ return await db.findByIri(solidProfileResource, webId);
21
21
  },
22
22
  async resolveDisplayName(db, webId) {
23
23
  return pickSolidProfileDisplayName(await profileRepository.findByWebId(db, webId));
@@ -0,0 +1,58 @@
1
+ export type ReportKindType = 'closure' | 'review' | 'status' | 'handoff' | 'quality';
2
+ export type ReportStatusType = 'draft' | 'published' | 'accepted' | 'rejected' | 'superseded';
3
+ export type ReportOutcomeType = 'accepted' | 'rejected' | 'reopened' | 'partial_release' | 'deferred' | 'blocked' | 'change_requested';
4
+ export declare const ReportKind: {
5
+ readonly CLOSURE: "closure";
6
+ readonly REVIEW: "review";
7
+ readonly STATUS: "status";
8
+ readonly HANDOFF: "handoff";
9
+ readonly QUALITY: "quality";
10
+ };
11
+ export declare const ReportStatus: {
12
+ readonly DRAFT: "draft";
13
+ readonly PUBLISHED: "published";
14
+ readonly ACCEPTED: "accepted";
15
+ readonly REJECTED: "rejected";
16
+ readonly SUPERSEDED: "superseded";
17
+ };
18
+ export declare const ReportOutcome: {
19
+ readonly ACCEPTED: "accepted";
20
+ readonly REJECTED: "rejected";
21
+ readonly REOPENED: "reopened";
22
+ readonly PARTIAL_RELEASE: "partial_release";
23
+ readonly DEFERRED: "deferred";
24
+ readonly BLOCKED: "blocked";
25
+ readonly CHANGE_REQUESTED: "change_requested";
26
+ };
27
+ /**
28
+ * Report resource.
29
+ *
30
+ * Report is the authoritative closure, review, handoff, status, or quality
31
+ * summary resource. The resource subject is the report file/record itself;
32
+ * `about` points to the control object being summarized.
33
+ */
34
+ export declare const reportResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
35
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
36
+ reportKind: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
37
+ status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
38
+ outcome: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
39
+ about: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
40
+ issue: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
41
+ task: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
42
+ delivery: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
43
+ run: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
44
+ thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
45
+ evidence: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
46
+ summary: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
47
+ reviewer: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
48
+ actor: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
49
+ source: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
50
+ metricFacts: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
51
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
52
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
53
+ publishedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
54
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
55
+ }>>;
56
+ export type ReportRow = typeof reportResource.$inferSelect;
57
+ export type ReportInsert = typeof reportResource.$inferInsert;
58
+ export type ReportUpdate = typeof reportResource.$inferUpdate;
@@ -0,0 +1,73 @@
1
+ import { id, object, podTable, renderDefaultIdTemplate, string, text, timestamp, uri } from '@undefineds.co/drizzle-solid';
2
+ import { DCTerms, SCHEMA, UDFS } from './namespaces.js';
3
+ import { deliveryResource } from './delivery.schema.js';
4
+ import { evidenceResource } from './evidence.schema.js';
5
+ import { issueResource } from './issue.schema.js';
6
+ import { runResource } from './run.schema.js';
7
+ import { taskResource } from './task.schema.js';
8
+ import { threadResource } from './thread.schema.js';
9
+ import { resourceKey, workflowOwnerDir } from './resource-id-defaults.js';
10
+ export const ReportKind = {
11
+ CLOSURE: 'closure',
12
+ REVIEW: 'review',
13
+ STATUS: 'status',
14
+ HANDOFF: 'handoff',
15
+ QUALITY: 'quality',
16
+ };
17
+ export const ReportStatus = {
18
+ DRAFT: 'draft',
19
+ PUBLISHED: 'published',
20
+ ACCEPTED: 'accepted',
21
+ REJECTED: 'rejected',
22
+ SUPERSEDED: 'superseded',
23
+ };
24
+ export const ReportOutcome = {
25
+ ACCEPTED: 'accepted',
26
+ REJECTED: 'rejected',
27
+ REOPENED: 'reopened',
28
+ PARTIAL_RELEASE: 'partial_release',
29
+ DEFERRED: 'deferred',
30
+ BLOCKED: 'blocked',
31
+ CHANGE_REQUESTED: 'change_requested',
32
+ };
33
+ /**
34
+ * Report resource.
35
+ *
36
+ * Report is the authoritative closure, review, handoff, status, or quality
37
+ * summary resource. The resource subject is the report file/record itself;
38
+ * `about` points to the control object being summarized.
39
+ */
40
+ export const reportResource = podTable('report', {
41
+ id: id('id').default((key, row) => {
42
+ const localKey = resourceKey(key, 'report');
43
+ const ownerDir = workflowOwnerDir(row) ?? 'reports';
44
+ return renderDefaultIdTemplate(`${ownerDir}/{yyyy}/{MM}/{dd}/reports.ttl#{key}`, {
45
+ key: localKey,
46
+ row,
47
+ });
48
+ }),
49
+ reportKind: string('reportKind').predicate(UDFS.reportKind).notNull(),
50
+ status: string('status').predicate(UDFS.status).notNull().default(ReportStatus.DRAFT),
51
+ outcome: string('outcome').predicate(UDFS.outcome),
52
+ about: uri('about').predicate(SCHEMA.about).notNull(),
53
+ issue: uri('issue').predicate(UDFS.issue).link(issueResource),
54
+ task: uri('task').predicate(UDFS.task).link(taskResource),
55
+ delivery: uri('delivery').predicate(UDFS.delivery).link(deliveryResource),
56
+ run: uri('run').predicate(UDFS.run).link(runResource),
57
+ thread: uri('thread').predicate(UDFS.inThread).link(threadResource),
58
+ evidence: uri('evidence').predicate(UDFS.evidence).array().link(evidenceResource),
59
+ summary: text('summary').predicate(DCTerms.abstract).notNull(),
60
+ reviewer: uri('reviewer').predicate(SCHEMA.reviewedBy),
61
+ actor: uri('actor').predicate(DCTerms.creator),
62
+ source: uri('source').predicate(DCTerms.source),
63
+ metricFacts: object('metricFacts').predicate(UDFS.metricFacts),
64
+ metadata: object('metadata').predicate(UDFS.metadata),
65
+ createdAt: timestamp('createdAt').predicate(DCTerms.created).notNull().defaultNow(),
66
+ publishedAt: timestamp('publishedAt').predicate(DCTerms.issued),
67
+ updatedAt: timestamp('updatedAt').predicate(DCTerms.modified).notNull().defaultNow(),
68
+ }, {
69
+ base: '/.data/',
70
+ sparqlEndpoint: '/.data/-/sparql',
71
+ type: UDFS.Report,
72
+ namespace: UDFS,
73
+ });
@@ -1,8 +1,19 @@
1
- import { initSolidTables, type AnyPodTable } from '@undefineds.co/drizzle-solid';
2
- export { createRepositoryDescriptor, definePodRepository, type PodRepositoryDescriptor, type RepositoryCacheOptions, type RepositoryInvalidations, type RepositoryScope, type SolidDatabase, } from '@undefineds.co/drizzle-solid';
1
+ import { createRepositoryDescriptor as createDrizzleRepositoryDescriptor, initSolidResources, initSolidTables, type AnyPodResource, type AnyPodTable, type PodRepositoryOptions as DrizzlePodRepositoryOptions } from '@undefineds.co/drizzle-solid';
2
+ export { type PodRepositoryDescriptor, type RepositoryCacheOptions, type RepositoryInvalidations, type RepositoryScope, type SolidDatabase, } from '@undefineds.co/drizzle-solid';
3
+ export { initSolidResources };
4
+ export type { AnyPodResource };
5
+ type ResourceRepositoryFilter<TResource extends AnyPodResource, Row extends Record<string, unknown>, Filters extends Record<string, unknown>> = (context: {
6
+ resource: TResource;
7
+ filters?: Filters;
8
+ }) => ReturnType<NonNullable<DrizzlePodRepositoryOptions<TResource, Row, Filters>['filter']>>;
9
+ export type PodResourceRepositoryOptions<TResource extends AnyPodResource, Row extends Record<string, unknown> = TResource['$inferSelect'], Filters extends Record<string, unknown> = Record<string, unknown>> = Omit<DrizzlePodRepositoryOptions<TResource, Row, Filters>, 'table' | 'filter'> & {
10
+ resource: TResource;
11
+ filter?: ResourceRepositoryFilter<TResource, Row, Filters>;
12
+ };
13
+ export declare function createResourceRepositoryDescriptor<TResource extends AnyPodResource, Row extends Record<string, unknown> = TResource['$inferSelect'], Insert = TResource['$inferInsert'], Update = TResource['$inferUpdate'], Filters extends Record<string, unknown> = Record<string, unknown>>(options: PodResourceRepositoryOptions<TResource, Row, Filters>): import("@undefineds.co/drizzle-solid").PodRepositoryDescriptor<TResource, Row, Insert, Update, Filters>;
14
+ export declare const definePodRepository: typeof createResourceRepositoryDescriptor;
15
+ export declare const createRepositoryDescriptor: typeof createDrizzleRepositoryDescriptor;
3
16
  export { initSolidTables };
4
17
  export type { AnyPodTable };
5
- export declare const initSolidResources: typeof initSolidTables;
6
- export type AnyPodResource = AnyPodTable;
7
18
  type PodResourceTemplateTarget = Parameters<typeof import('@undefineds.co/drizzle-solid').extractPodResourceTemplateValue>[0];
8
19
  export declare function asPodResourceTemplateTarget(resource: AnyPodResource): PodResourceTemplateTarget;
@@ -1,9 +1,20 @@
1
- import { initSolidTables, } from '@undefineds.co/drizzle-solid';
2
- export { createRepositoryDescriptor, definePodRepository, } from '@undefineds.co/drizzle-solid';
1
+ import { createRepositoryDescriptor as createDrizzleRepositoryDescriptor, initSolidResources, initSolidTables, } from '@undefineds.co/drizzle-solid';
2
+ export { initSolidResources };
3
+ export function createResourceRepositoryDescriptor(options) {
4
+ const { resource, filter, ...rest } = options;
5
+ return createDrizzleRepositoryDescriptor({
6
+ ...rest,
7
+ table: resource,
8
+ filter: filter
9
+ ? ({ table, filters }) => filter({ resource: table, filters })
10
+ : undefined,
11
+ });
12
+ }
13
+ export const definePodRepository = createResourceRepositoryDescriptor;
14
+ // Compatibility exports for older call sites. New shared-model code should use
15
+ // resource names.
16
+ export const createRepositoryDescriptor = createDrizzleRepositoryDescriptor;
3
17
  export { initSolidTables };
4
- // Resource-first aliases for shared Solid model call sites. The underlying
5
- // drizzle-solid API still uses table-shaped arguments for compatibility.
6
- export const initSolidResources = initSolidTables;
7
18
  export function asPodResourceTemplateTarget(resource) {
8
19
  return resource;
9
20
  }
@@ -1,4 +1,3 @@
1
- export type CommandKind = 'chat' | 'task';
2
1
  export type DateInput = Date | string | number | null | undefined;
3
2
  export interface DateParts {
4
3
  yyyy: string;
@@ -7,15 +6,5 @@ export interface DateParts {
7
6
  }
8
7
  export declare function dateParts(value?: DateInput): DateParts;
9
8
  export declare function resourceKey(key: string | undefined, prefix: string): string;
9
+ export declare function workflowOwnerDir(row?: Record<string, unknown>): string | null;
10
10
  export declare function parentDir(id: string | null | undefined): string | null;
11
- export declare function surfaceIdFromCommandResourceId(id: string | null | undefined): string | null;
12
- export declare function commandKindFromResourceId(id: string | null | undefined): CommandKind | null;
13
- export declare function chatResourceId(key?: string): string;
14
- export declare function taskResourceId(key?: string): string;
15
- export declare function threadResourceId(key: string | undefined, row?: Record<string, unknown>): string;
16
- export declare function messageResourceId(key: string | undefined, row?: Record<string, unknown>): string;
17
- export declare function runResourceId(key: string | undefined, row?: Record<string, unknown>): string;
18
- export declare function runStepResourceId(key: string | undefined, row?: Record<string, unknown>): string;
19
- export declare function matrixAccountResourceId(key: string | undefined, row?: Record<string, unknown>): string;
20
- export declare function matrixRoomResourceId(key: string | undefined, row?: Record<string, unknown>): string;
21
- export declare function matrixEventResourceId(key: string | undefined, row?: Record<string, unknown>): string;