@undefineds.co/models 0.2.34 → 0.2.37

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 +40 -0
  34. package/dist/evidence.schema.js +48 -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 +8 -12
  52. package/dist/message.repository.js +1 -1
  53. package/dist/message.schema.d.ts +11 -9
  54. package/dist/message.schema.js +29 -13
  55. package/dist/namespaces.d.ts +0 -2
  56. package/dist/namespaces.js +121 -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 +275 -192
  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 +8 -8
  90. package/dist/thread.repository.js +1 -1
  91. package/dist/thread.schema.d.ts +15 -10
  92. package/dist/thread.schema.js +32 -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 +2 -1
  102. package/dist/vocab/message.vocab.js +2 -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 +2 -0
  108. package/dist/vocab/thread.vocab.js +2 -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 +70 -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',
@@ -112,13 +132,12 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
112
132
  sortKey: 'sortKey',
113
133
  hasThread: 'hasThread',
114
134
  inThread: 'inThread',
135
+ inScope: 'inScope',
115
136
  participants: 'participants',
137
+ message: 'message',
116
138
  messageContent: 'messageContent',
117
- messageResource: 'messageResource',
118
139
  messageType: 'messageType',
119
140
  messageStatus: 'messageStatus',
120
- commandKind: 'commandKind',
121
- surfaceId: 'surfaceId',
122
141
  readBy: 'readBy',
123
142
  Contact: 'Contact',
124
143
  PersonContact: 'PersonContact',
@@ -126,7 +145,6 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
126
145
  GroupContact: 'GroupContact',
127
146
  hasContact: 'hasContact',
128
147
  contactType: 'contactType',
129
- entityUri: 'entityUri',
130
148
  externalPlatform: 'externalPlatform',
131
149
  externalId: 'externalId',
132
150
  alias: 'alias',
@@ -141,7 +159,32 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
141
159
  systemMessage: 'systemMessage',
142
160
  provider: 'provider',
143
161
  model: 'model',
162
+ displayName: 'displayName',
163
+ proxyUrl: 'proxyUrl',
164
+ hasModel: 'hasModel',
165
+ defaultModel: 'defaultModel',
166
+ modelType: 'modelType',
167
+ isProvidedBy: 'isProvidedBy',
168
+ dimension: 'dimension',
169
+ supportsBackend: 'supportsBackend',
170
+ rotationPolicy: 'rotationPolicy',
144
171
  metadata: 'metadata',
172
+ root: 'root',
173
+ webId: 'webId',
174
+ hasSkill: 'hasSkill',
175
+ skill: 'skill',
176
+ enabled: 'enabled',
177
+ version: 'version',
178
+ checksum: 'checksum',
179
+ loadPolicy: 'loadPolicy',
180
+ credentialSource: 'credentialSource',
181
+ backend: 'backend',
182
+ runtime: 'runtime',
183
+ transport: 'transport',
184
+ endpoint: 'endpoint',
185
+ authorityPolicy: 'authorityPolicy',
186
+ toolPolicy: 'toolPolicy',
187
+ runtimeSnapshot: 'runtimeSnapshot',
145
188
  tools: 'tools',
146
189
  contextWindow: 'contextWindow',
147
190
  contextRound: 'contextRound',
@@ -153,6 +196,17 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
153
196
  syncStatus: 'syncStatus',
154
197
  localPath: 'localPath',
155
198
  isDefault: 'isDefault',
199
+ service: 'service',
200
+ label: 'label',
201
+ lastUsedAt: 'lastUsedAt',
202
+ failCount: 'failCount',
203
+ rateLimitResetAt: 'rateLimitResetAt',
204
+ oauthRefreshToken: 'oauthRefreshToken',
205
+ oauthAccessToken: 'oauthAccessToken',
206
+ oauthExpiresAt: 'oauthExpiresAt',
207
+ projectId: 'projectId',
208
+ organizationId: 'organizationId',
209
+ secretType: 'secretType',
156
210
  settingKey: 'settingKey',
157
211
  settingValue: 'settingValue',
158
212
  settingType: 'settingType',
@@ -161,13 +215,34 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
161
215
  inbox: 'inbox',
162
216
  issue: 'issue',
163
217
  task: 'task',
164
- triggerKind: 'triggerKind',
165
- cron: 'cron',
166
- intervalSeconds: 'intervalSeconds',
167
- eventName: 'eventName',
168
- nextRunAt: 'nextRunAt',
169
- lastRunAt: 'lastRunAt',
218
+ schedule: 'schedule',
219
+ automationRule: 'automationRule',
220
+ delivery: 'delivery',
221
+ deliveryKind: 'deliveryKind',
222
+ scheduleKind: 'scheduleKind',
223
+ ruleKind: 'ruleKind',
224
+ instruction: 'instruction',
225
+ input: 'input',
226
+ trigger: 'trigger',
227
+ condition: 'condition',
228
+ actions: 'actions',
229
+ objective: 'objective',
230
+ payload: 'payload',
231
+ projection: 'projection',
232
+ target: 'target',
233
+ targetThread: 'targetThread',
234
+ targetSession: 'targetSession',
235
+ projectedRole: 'projectedRole',
236
+ consumedAt: 'consumedAt',
170
237
  priority: 'priority',
238
+ commitment: 'commitment',
239
+ affectedArea: 'affectedArea',
240
+ currentUnderstanding: 'currentUnderstanding',
241
+ openQuestions: 'openQuestions',
242
+ conflicts: 'conflicts',
243
+ nextStep: 'nextStep',
244
+ promotedTo: 'promotedTo',
245
+ sourceMessage: 'sourceMessage',
171
246
  parentIssue: 'parentIssue',
172
247
  session: 'session',
173
248
  status: 'status',
@@ -187,6 +262,7 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
187
262
  body: 'body',
188
263
  tags: 'tags',
189
264
  source: 'source',
265
+ sourceKind: 'sourceKind',
190
266
  sourceHash: 'sourceHash',
191
267
  compiledAt: 'compiledAt',
192
268
  compiledFrom: 'compiledFrom',
@@ -208,10 +284,10 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
208
284
  videoModel: 'videoModel',
209
285
  chatType: 'chatType',
210
286
  workspace: 'workspace',
211
- container: 'workspace',
287
+ container: 'container',
212
288
  policyRef: 'policyRef',
213
289
  policyVersion: 'policyVersion',
214
- parentThreadId: 'parentThreadId',
290
+ parentThread: 'parentThread',
215
291
  sessionStatus: 'sessionStatus',
216
292
  runner: 'runner',
217
293
  prompt: 'prompt',
@@ -221,12 +297,42 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
221
297
  heartbeatAt: 'heartbeatAt',
222
298
  cancelRequestedAt: 'cancelRequestedAt',
223
299
  startedAt: 'startedAt',
300
+ startsAt: 'startsAt',
301
+ createdAt: 'createdAt',
302
+ updatedAt: 'updatedAt',
224
303
  completedAt: 'completedAt',
304
+ nextRunAt: 'nextRunAt',
305
+ lastRunAt: 'lastRunAt',
306
+ lastTriggeredAt: 'lastTriggeredAt',
307
+ lastRunStatus: 'lastRunStatus',
308
+ cron: 'cron',
309
+ intervalSeconds: 'intervalSeconds',
310
+ timezone: 'timezone',
225
311
  error: 'error',
226
- runId: 'runId',
227
312
  run: 'run',
313
+ stepType: 'stepType',
314
+ evidence: 'evidence',
315
+ evidenceKind: 'evidenceKind',
316
+ report: 'report',
317
+ reportKind: 'reportKind',
318
+ outcome: 'outcome',
319
+ metricFacts: 'metricFacts',
320
+ publishedAt: 'publishedAt',
321
+ reviewer: 'reviewer',
228
322
  sessionTool: 'sessionTool',
229
323
  tokenUsage: 'tokenUsage',
324
+ embeddingModel: 'embeddingModel',
325
+ previousModel: 'previousModel',
326
+ migrationStatus: 'migrationStatus',
327
+ migrationProgress: 'migrationProgress',
328
+ chunkingStrategy: 'chunkingStrategy',
329
+ fileUrl: 'fileUrl',
330
+ vectorId: 'vectorId',
331
+ usageBytes: 'usageBytes',
332
+ lastError: 'lastError',
333
+ indexedAt: 'indexedAt',
334
+ lastActivityAt: 'lastActivityAt',
335
+ errorMessage: 'errorMessage',
230
336
  groupOwner: 'groupOwner',
231
337
  groupAdmin: 'groupAdmin',
232
338
  senderName: 'senderName',
@@ -234,8 +340,9 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
234
340
  mentions: 'mentions',
235
341
  replyTo: 'replyTo',
236
342
  routedBy: 'routedBy',
237
- routeTargetAgentId: 'routeTargetAgentId',
343
+ routeTargetAgent: 'routeTargetAgent',
238
344
  coordinationId: 'coordinationId',
345
+ agent: 'agent',
239
346
  toolCallId: 'toolCallId',
240
347
  toolName: 'toolName',
241
348
  toolArguments: 'toolArguments',
@@ -254,87 +361,9 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
254
361
  taskSteps: 'taskSteps',
255
362
  currentStep: 'currentStep',
256
363
  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
364
  // Favorites V2
277
365
  sourceModule: 'sourceModule',
278
- sourceId: 'sourceId',
279
366
  searchText: 'searchText',
280
367
  snapshotMeta: 'snapshotMeta',
281
368
  });
282
369
  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;