@undefineds.co/models 0.2.19 → 0.2.22

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 (70) hide show
  1. package/README.md +178 -522
  2. package/dist/agent.repository.js +2 -2
  3. package/dist/agent.schema.d.ts +20 -3
  4. package/dist/agent.schema.js +3 -1
  5. package/dist/ai-config/index.d.ts +24 -0
  6. package/dist/ai-config/index.js +133 -23
  7. package/dist/ai-model.schema.d.ts +13 -3
  8. package/dist/ai-model.schema.js +6 -4
  9. package/dist/ai-provider.schema.d.ts +13 -3
  10. package/dist/ai-provider.schema.js +7 -3
  11. package/dist/ai-runtime.schema.d.ts +84 -0
  12. package/dist/ai-runtime.schema.js +64 -0
  13. package/dist/approval.schema.d.ts +1 -0
  14. package/dist/approval.schema.js +11 -0
  15. package/dist/audit.schema.d.ts +1 -0
  16. package/dist/audit.schema.js +11 -0
  17. package/dist/chat.repository.js +2 -2
  18. package/dist/chat.schema.d.ts +1 -1
  19. package/dist/chat.schema.js +1 -1
  20. package/dist/contact.repository.js +2 -2
  21. package/dist/contact.schema.d.ts +26 -4
  22. package/dist/contact.schema.js +4 -2
  23. package/dist/credential.schema.d.ts +111 -3
  24. package/dist/credential.schema.js +15 -2
  25. package/dist/favorite/favorite.schema.d.ts +18 -4
  26. package/dist/favorite/favorite.schema.js +4 -2
  27. package/dist/favorite/index.d.ts +1 -1
  28. package/dist/favorite/index.js +1 -1
  29. package/dist/favorite/starred-sync.d.ts +2 -2
  30. package/dist/favorite/starred-sync.js +4 -4
  31. package/dist/file/file.schema.d.ts +26 -5
  32. package/dist/file/file.schema.js +5 -3
  33. package/dist/file/index.d.ts +1 -1
  34. package/dist/file/index.js +1 -1
  35. package/dist/grant.schema.d.ts +1 -0
  36. package/dist/grant.schema.js +3 -0
  37. package/dist/inbox-notification.schema.d.ts +10 -3
  38. package/dist/inbox-notification.schema.js +3 -1
  39. package/dist/index.d.ts +17 -17
  40. package/dist/index.js +17 -21
  41. package/dist/message.repository.js +2 -2
  42. package/dist/message.schema.js +8 -8
  43. package/dist/namespaces.d.ts +0 -3
  44. package/dist/namespaces.js +33 -7
  45. package/dist/profile.d.ts +2 -1
  46. package/dist/profile.js +6 -3
  47. package/dist/profile.repository.js +3 -3
  48. package/dist/profile.schema.d.ts +16 -3
  49. package/dist/profile.schema.js +3 -1
  50. package/dist/repository.d.ts +6 -1
  51. package/dist/repository.js +6 -1
  52. package/dist/schema.d.ts +102 -10
  53. package/dist/schema.js +31 -21
  54. package/dist/session/index.d.ts +1 -1
  55. package/dist/session/index.js +1 -1
  56. package/dist/session/session.schema.d.ts +7 -2
  57. package/dist/session/session.schema.js +32 -4
  58. package/dist/session.repository.d.ts +4 -0
  59. package/dist/session.repository.js +2 -2
  60. package/dist/settings/index.d.ts +1 -1
  61. package/dist/settings/index.js +1 -1
  62. package/dist/settings/settings.schema.d.ts +17 -5
  63. package/dist/settings/settings.schema.js +4 -2
  64. package/dist/thread.repository.js +2 -2
  65. package/dist/thread.schema.js +2 -2
  66. package/dist/vocab/message.vocab.js +8 -8
  67. package/dist/vocab/thread.vocab.js +2 -2
  68. package/package.json +15 -8
  69. package/dist/watch/index.d.ts +0 -281
  70. package/dist/watch/index.js +0 -1493
@@ -1,6 +1,17 @@
1
1
  import { extractPodResourceTemplateValue, podTable, uri, string, text, timestamp, id } from '@undefineds.co/drizzle-solid';
2
2
  import { ODRL, UDFS, DCTerms } from './namespaces.js';
3
+ export function buildApprovalSubjectPath(approvalId, createdAt = new Date()) {
4
+ const date = createdAt instanceof Date ? createdAt : new Date(createdAt);
5
+ const safeDate = Number.isFinite(date.getTime()) ? date : new Date();
6
+ const yyyy = String(safeDate.getUTCFullYear());
7
+ const mm = String(safeDate.getUTCMonth() + 1).padStart(2, '0');
8
+ const dd = String(safeDate.getUTCDate()).padStart(2, '0');
9
+ return `/.data/approvals/${yyyy}/${mm}/${dd}.ttl#${encodeURIComponent(approvalId)}`;
10
+ }
3
11
  export function extractApprovalIdFromApprovalRef(approvalRef) {
12
+ if (approvalRef && !/[/:#]/.test(approvalRef)) {
13
+ return approvalRef;
14
+ }
4
15
  return extractPodResourceTemplateValue(approvalResource, approvalRef);
5
16
  }
6
17
  // Approval request resource (separate from Solid inbox notifications).
@@ -1,3 +1,4 @@
1
+ export declare function buildAuditSubjectPath(auditId: string, createdAt?: Date | string | number): string;
1
2
  export declare const auditResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
2
3
  id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
3
4
  action: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
@@ -1,5 +1,13 @@
1
1
  import { extractPodResourceTemplateValue, podTable, uri, string, timestamp, id } from '@undefineds.co/drizzle-solid';
2
2
  import { UDFS, DCTerms } from './namespaces.js';
3
+ export function buildAuditSubjectPath(auditId, createdAt = new Date()) {
4
+ const date = createdAt instanceof Date ? createdAt : new Date(createdAt);
5
+ const safeDate = Number.isFinite(date.getTime()) ? date : new Date();
6
+ const yyyy = String(safeDate.getUTCFullYear());
7
+ const mm = String(safeDate.getUTCMonth() + 1).padStart(2, '0');
8
+ const dd = String(safeDate.getUTCDate()).padStart(2, '0');
9
+ return `/.data/audits/${yyyy}/${mm}/${dd}.ttl#${encodeURIComponent(auditId)}`;
10
+ }
3
11
  // Append-only audit entry resource (separate from Solid inbox notifications).
4
12
  // Audit entries are independent events; session/chat/thread are optional relations,
5
13
  // not storage ownership boundaries.
@@ -30,6 +38,9 @@ export const auditResource = podTable('audit', {
30
38
  subjectTemplate: '{yyyy}/{MM}/{dd}.ttl#{id}',
31
39
  });
32
40
  export function extractAuditIdFromAuditRef(auditRef) {
41
+ if (auditRef && !/[/:#]/.test(auditRef)) {
42
+ return auditRef;
43
+ }
33
44
  return extractPodResourceTemplateValue(auditResource, auditRef);
34
45
  }
35
46
  // Compatibility alias. New model code should prefer `auditResource`.
@@ -1,8 +1,8 @@
1
1
  import { definePodRepository } from './repository.js';
2
- import { chatTable } from './chat.schema.js';
2
+ import { chatResource } from './chat.schema.js';
3
3
  export const chatRepository = definePodRepository({
4
4
  namespace: 'chat',
5
- table: chatTable,
5
+ table: chatResource,
6
6
  searchableFields: ['title', 'description'],
7
7
  defaultSort: { field: 'lastActiveAt', direction: 'desc' },
8
8
  });
@@ -11,7 +11,7 @@ export interface ChatMetadata {
11
11
  * where a runtime executes.
12
12
  * - Runtime/workspace/place/session context belongs on Thread.
13
13
  * - Direct LinX CLI entry should use a chat representing the AI secretary.
14
- * - Watch entry should use a chat representing the watched agent/tool, such as
14
+ * - Auto-mode entry should use a chat representing the controlled agent/tool, such as
15
15
  * Codex, Claude Code, or a concrete AI identity when available.
16
16
  *
17
17
  * Storage structure (aligned with xpod):
@@ -9,7 +9,7 @@ import { UDFS, DCTerms, SCHEMA, MEETING, WF } from './namespaces.js';
9
9
  * where a runtime executes.
10
10
  * - Runtime/workspace/place/session context belongs on Thread.
11
11
  * - Direct LinX CLI entry should use a chat representing the AI secretary.
12
- * - Watch entry should use a chat representing the watched agent/tool, such as
12
+ * - Auto-mode entry should use a chat representing the controlled agent/tool, such as
13
13
  * Codex, Claude Code, or a concrete AI identity when available.
14
14
  *
15
15
  * Storage structure (aligned with xpod):
@@ -1,8 +1,8 @@
1
1
  import { definePodRepository } from './repository.js';
2
- import { contactTable } from './contact.schema.js';
2
+ import { contactResource } from './contact.schema.js';
3
3
  export const contactRepository = definePodRepository({
4
4
  namespace: 'contact',
5
- table: contactTable,
5
+ table: contactResource,
6
6
  searchableFields: ['name', 'alias', 'note'],
7
7
  defaultSort: { field: 'name', direction: 'asc' },
8
8
  });
@@ -26,8 +26,30 @@ export declare function isGroupContact(contact: ContactClassifier | null | undef
26
26
  export declare function isAgentContact(contact: ContactClassifier | null | undefined): boolean;
27
27
  export declare function normalizeContactGender(value: string | null | undefined, fallback?: ContactGenderValue): ContactGenderValue | undefined;
28
28
  /**
29
- * Contact Table - Unified contact index for all contact types.
29
+ * Contact resource - unified contact index for all contact types.
30
30
  */
31
+ export declare const contactResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
32
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
33
+ name: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
34
+ avatarUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
35
+ entityUri: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
36
+ rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, true>;
37
+ contactType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
38
+ isPublic: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
39
+ externalPlatform: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
40
+ externalId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
41
+ alias: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
42
+ starred: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
43
+ note: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
44
+ sortKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
45
+ gender: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
46
+ province: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
47
+ city: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
48
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
49
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
50
+ deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
51
+ lastSyncedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
52
+ }>>;
31
53
  export declare const contactTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
32
54
  id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
33
55
  name: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
@@ -50,7 +72,7 @@ export declare const contactTable: import("@undefineds.co/drizzle-solid/dist/cor
50
72
  deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
51
73
  lastSyncedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
52
74
  }>>;
53
- export type ContactRow = typeof contactTable.$inferSelect;
54
- export type ContactInsert = typeof contactTable.$inferInsert;
55
- export type ContactUpdate = typeof contactTable.$inferUpdate;
75
+ export type ContactRow = typeof contactResource.$inferSelect;
76
+ export type ContactInsert = typeof contactResource.$inferInsert;
77
+ export type ContactUpdate = typeof contactResource.$inferUpdate;
56
78
  export {};
@@ -30,9 +30,9 @@ export function normalizeContactGender(value, fallback) {
30
30
  return fallback;
31
31
  }
32
32
  /**
33
- * Contact Table - Unified contact index for all contact types.
33
+ * Contact resource - unified contact index for all contact types.
34
34
  */
35
- export const contactTable = podTable('contact', {
35
+ export const contactResource = podTable('contact', {
36
36
  id: id('id'),
37
37
  // Display information (cached for search/display)
38
38
  name: string('name').predicate(VCARD.fn).notNull(),
@@ -70,3 +70,5 @@ export const contactTable = podTable('contact', {
70
70
  namespace: UDFS,
71
71
  subjectTemplate: '{id}.ttl',
72
72
  });
73
+ // Compatibility alias. New model code should prefer `contactResource`.
74
+ export const contactTable = contactResource;
@@ -1,3 +1,22 @@
1
+ export declare const credentialResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
2
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
3
+ provider: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
4
+ service: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
5
+ status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
6
+ apiKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
7
+ baseUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
8
+ proxyUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
9
+ label: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
10
+ isDefault: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
11
+ lastUsedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
12
+ failCount: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
13
+ rateLimitResetAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
14
+ oauthRefreshToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
15
+ oauthAccessToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
16
+ oauthExpiresAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
17
+ projectId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
18
+ organizationId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
19
+ }>>;
1
20
  export declare const credentialTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
2
21
  id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
3
22
  provider: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
@@ -5,11 +24,100 @@ export declare const credentialTable: import("@undefineds.co/drizzle-solid/dist/
5
24
  status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
6
25
  apiKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
7
26
  baseUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
27
+ proxyUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
28
+ label: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
29
+ isDefault: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
30
+ lastUsedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
31
+ failCount: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
32
+ rateLimitResetAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
33
+ oauthRefreshToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
34
+ oauthAccessToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
35
+ oauthExpiresAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
36
+ projectId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
37
+ organizationId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
38
+ }>>;
39
+ export declare const apiKeyCredentialResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
40
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
41
+ provider: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
42
+ service: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
43
+ status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
44
+ apiKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
45
+ baseUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
46
+ proxyUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
47
+ label: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
48
+ isDefault: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
49
+ lastUsedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
50
+ failCount: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
51
+ rateLimitResetAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
52
+ oauthRefreshToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
53
+ oauthAccessToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
54
+ oauthExpiresAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
55
+ projectId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
56
+ organizationId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
57
+ }>>;
58
+ export declare const apiKeyCredentialTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
59
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
60
+ provider: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
61
+ service: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
62
+ status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
63
+ apiKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
64
+ baseUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
65
+ proxyUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
66
+ label: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
67
+ isDefault: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
68
+ lastUsedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
69
+ failCount: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
70
+ rateLimitResetAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
71
+ oauthRefreshToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
72
+ oauthAccessToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
73
+ oauthExpiresAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
74
+ projectId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
75
+ organizationId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
76
+ }>>;
77
+ export declare const oauthCredentialResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
78
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
79
+ provider: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
80
+ service: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
81
+ status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
82
+ apiKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
83
+ baseUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
84
+ proxyUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
85
+ label: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
86
+ isDefault: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
87
+ lastUsedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
88
+ failCount: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
89
+ rateLimitResetAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
90
+ oauthRefreshToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
91
+ oauthAccessToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
92
+ oauthExpiresAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
93
+ projectId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
94
+ organizationId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
95
+ }>>;
96
+ export declare const oauthCredentialTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
97
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
98
+ provider: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
99
+ service: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
100
+ status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
101
+ apiKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
102
+ baseUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
103
+ proxyUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
8
104
  label: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
105
+ isDefault: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
9
106
  lastUsedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
10
107
  failCount: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
11
108
  rateLimitResetAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
109
+ oauthRefreshToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
110
+ oauthAccessToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
111
+ oauthExpiresAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
112
+ projectId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
113
+ organizationId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
12
114
  }>>;
13
- export type CredentialRow = typeof credentialTable.$inferSelect;
14
- export type CredentialInsert = typeof credentialTable.$inferInsert;
15
- export type CredentialUpdate = typeof credentialTable.$inferUpdate;
115
+ export type CredentialRow = typeof credentialResource.$inferSelect;
116
+ export type CredentialInsert = typeof credentialResource.$inferInsert;
117
+ export type CredentialUpdate = typeof credentialResource.$inferUpdate;
118
+ export type ApiKeyCredentialRow = typeof apiKeyCredentialResource.$inferSelect;
119
+ export type ApiKeyCredentialInsert = typeof apiKeyCredentialResource.$inferInsert;
120
+ export type ApiKeyCredentialUpdate = typeof apiKeyCredentialResource.$inferUpdate;
121
+ export type OAuthCredentialRow = typeof oauthCredentialResource.$inferSelect;
122
+ export type OAuthCredentialInsert = typeof oauthCredentialResource.$inferInsert;
123
+ export type OAuthCredentialUpdate = typeof oauthCredentialResource.$inferUpdate;
@@ -1,19 +1,32 @@
1
- import { id, integer, podTable, string, timestamp, uri } from "@undefineds.co/drizzle-solid";
1
+ import { boolean, id, integer, podTable, string, timestamp, uri } from "@undefineds.co/drizzle-solid";
2
2
  import { XPOD_CREDENTIAL } from "./namespaces.js";
3
- export const credentialTable = podTable("credential", {
3
+ export const credentialResource = podTable("credential", {
4
4
  id: id("id"),
5
5
  provider: uri("provider").predicate(XPOD_CREDENTIAL.provider).link("aiProvider"),
6
6
  service: string("service").predicate(XPOD_CREDENTIAL.service).notNull().default("ai"),
7
7
  status: string("status").predicate(XPOD_CREDENTIAL.status).notNull().default("active"),
8
8
  apiKey: string("apiKey").predicate(XPOD_CREDENTIAL.apiKey),
9
9
  baseUrl: string("baseUrl").predicate(XPOD_CREDENTIAL.baseUrl),
10
+ proxyUrl: string("proxyUrl").predicate(XPOD_CREDENTIAL.proxyUrl),
10
11
  label: string("label").predicate(XPOD_CREDENTIAL.label),
12
+ isDefault: boolean("isDefault").predicate(XPOD_CREDENTIAL.isDefault).default(false),
11
13
  lastUsedAt: timestamp("lastUsedAt").predicate(XPOD_CREDENTIAL.lastUsedAt),
12
14
  failCount: integer("failCount").predicate(XPOD_CREDENTIAL.failCount).default(0),
13
15
  rateLimitResetAt: timestamp("rateLimitResetAt").predicate(XPOD_CREDENTIAL.rateLimitResetAt),
16
+ oauthRefreshToken: string("oauthRefreshToken").predicate(XPOD_CREDENTIAL.oauthRefreshToken),
17
+ oauthAccessToken: string("oauthAccessToken").predicate(XPOD_CREDENTIAL.oauthAccessToken),
18
+ oauthExpiresAt: timestamp("oauthExpiresAt").predicate(XPOD_CREDENTIAL.oauthExpiresAt),
19
+ projectId: string("projectId").predicate(XPOD_CREDENTIAL.projectId),
20
+ organizationId: string("organizationId").predicate(XPOD_CREDENTIAL.organizationId),
14
21
  }, {
15
22
  base: "/settings/credentials.ttl",
16
23
  type: XPOD_CREDENTIAL.Credential,
17
24
  namespace: XPOD_CREDENTIAL,
18
25
  subjectTemplate: "#{id}",
19
26
  });
27
+ // Compatibility aliases. New model code should prefer `credentialResource`.
28
+ export const credentialTable = credentialResource;
29
+ export const apiKeyCredentialResource = credentialResource;
30
+ export const apiKeyCredentialTable = credentialResource;
31
+ export const oauthCredentialResource = credentialResource;
32
+ export const oauthCredentialTable = credentialResource;
@@ -1,10 +1,24 @@
1
1
  /**
2
- * Favorite Schema
2
+ * Favorite resource
3
3
  * 收藏项 - 基于 Solid Pod 存储
4
4
  *
5
5
  * 支持收藏:Chat, Thread, Contact, Message 等
6
6
  * favoriteType 使用 RDF type URI 标识实体类型
7
7
  */
8
+ export declare const favoriteResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
9
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
10
+ targetType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
11
+ targetUri: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
12
+ title: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
13
+ snapshotContent: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
14
+ snapshotAuthor: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
15
+ sourceModule: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
16
+ sourceId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
17
+ searchText: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
18
+ snapshotMeta: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
19
+ favoredAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
20
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
21
+ }>>;
8
22
  export declare const favoriteTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
9
23
  id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
10
24
  targetType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
@@ -19,6 +33,6 @@ export declare const favoriteTable: import("@undefineds.co/drizzle-solid/dist/co
19
33
  favoredAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
20
34
  updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
21
35
  }>>;
22
- export type FavoriteRow = typeof favoriteTable.$inferSelect;
23
- export type FavoriteInsert = typeof favoriteTable.$inferInsert;
24
- export type FavoriteUpdate = typeof favoriteTable.$inferUpdate;
36
+ export type FavoriteRow = typeof favoriteResource.$inferSelect;
37
+ export type FavoriteInsert = typeof favoriteResource.$inferInsert;
38
+ export type FavoriteUpdate = typeof favoriteResource.$inferUpdate;
@@ -1,13 +1,13 @@
1
1
  import { podTable, string, timestamp, text, id, uri } from "@undefineds.co/drizzle-solid";
2
2
  import { UDFS, DCTerms, SCHEMA, RDF } from "../namespaces.js";
3
3
  /**
4
- * Favorite Schema
4
+ * Favorite resource
5
5
  * 收藏项 - 基于 Solid Pod 存储
6
6
  *
7
7
  * 支持收藏:Chat, Thread, Contact, Message 等
8
8
  * favoriteType 使用 RDF type URI 标识实体类型
9
9
  */
10
- export const favoriteTable = podTable("favorite", {
10
+ export const favoriteResource = podTable("favorite", {
11
11
  id: id("id"),
12
12
  // 收藏目标
13
13
  targetType: uri("targetType").predicate(RDF.type).notNull(), // RDF type URI (e.g., MEETING.LongChat)
@@ -32,3 +32,5 @@ export const favoriteTable = podTable("favorite", {
32
32
  type: SCHEMA.CreativeWork,
33
33
  namespace: UDFS,
34
34
  });
35
+ // Compatibility alias. New model code should prefer `favoriteResource`.
36
+ export const favoriteTable = favoriteResource;
@@ -1,2 +1,2 @@
1
- export { favoriteTable, type FavoriteRow, type FavoriteInsert, type FavoriteUpdate } from "./favorite.schema";
1
+ export { favoriteResource, favoriteTable, type FavoriteRow, type FavoriteInsert, type FavoriteUpdate } from "./favorite.schema";
2
2
  export { createStarredSyncHook, registerDbForStarredSync, chatStarredSyncHook, threadStarredSyncHook, contactStarredSyncHook, chatSnapshotExtractor, threadSnapshotExtractor, contactSnapshotExtractor, type SnapshotExtractor, type StarredSyncConfig, type SourceModule, } from "./starred-sync";
@@ -1,4 +1,4 @@
1
- export { favoriteTable } from "./favorite.schema.js";
1
+ export { favoriteResource, favoriteTable } from "./favorite.schema.js";
2
2
  // Starred Sync Hook
3
3
  export { createStarredSyncHook, registerDbForStarredSync,
4
4
  // Pre-configured hooks
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Starred Sync Hook
3
3
  *
4
- * 当实体的 starred 字段变更时,自动同步到 favoriteTable
4
+ * 当实体的 starred 字段变更时,自动同步到 favoriteResource
5
5
  * - starred: true → 创建 Favorite 记录
6
6
  * - starred: false → 删除 Favorite 记录
7
7
  *
@@ -37,7 +37,7 @@ export interface StarredSyncConfig<T = Record<string, unknown>> {
37
37
  * 创建 starred 同步 hook
38
38
  *
39
39
  * @example
40
- * const chatTable = podTable('chats', columns, {
40
+ * const chatResource = podTable('chats', columns, {
41
41
  * hooks: createStarredSyncHook({
42
42
  * rdfType: MEETING.LongChat,
43
43
  * extractor: {
@@ -1,4 +1,4 @@
1
- import { favoriteTable } from './favorite.schema.js';
1
+ import { favoriteResource } from './favorite.schema.js';
2
2
  import { MEETING, SIOC } from '../namespaces.js';
3
3
  import { VCARD } from '@inrupt/vocab-common-rdf';
4
4
  // ============================================================================
@@ -34,7 +34,7 @@ async function createFavorite(_ctx, config, record) {
34
34
  try {
35
35
  const db = getDbInstance();
36
36
  if (db) {
37
- await db.insert(favoriteTable).values(favoriteData).execute();
37
+ await db.insert(favoriteResource).values(favoriteData).execute();
38
38
  console.log(`[StarredSync] Created favorite: ${rdfType} → ${targetUri}`);
39
39
  }
40
40
  else {
@@ -54,7 +54,7 @@ async function deleteFavorite(_ctx, targetUri) {
54
54
  try {
55
55
  const db = getDbInstance();
56
56
  if (db) {
57
- await db.delete(favoriteTable)
57
+ await db.delete(favoriteResource)
58
58
  .where({ targetUri })
59
59
  .execute();
60
60
  console.log(`[StarredSync] Deleted favorite: ${targetUri}`);
@@ -71,7 +71,7 @@ async function deleteFavorite(_ctx, targetUri) {
71
71
  * 创建 starred 同步 hook
72
72
  *
73
73
  * @example
74
- * const chatTable = podTable('chats', columns, {
74
+ * const chatResource = podTable('chats', columns, {
75
75
  * hooks: createStarredSyncHook({
76
76
  * rdfType: MEETING.LongChat,
77
77
  * extractor: {
@@ -3,7 +3,7 @@
3
3
  * 标签、索引等元数据功能由 xpod sidecar 提供。
4
4
  * 此 schema 将在未来版本中移除。
5
5
  *
6
- * File Schema
6
+ * File resource
7
7
  * 文件管理模型 - 基于 Solid Pod 存储
8
8
  *
9
9
  * 参考标准:
@@ -11,8 +11,29 @@
11
11
  * - Schema.org CreativeWork
12
12
  * - LDP NonRDFSource (实际文件)
13
13
  *
14
- * 注意:此表存储文件元数据,实际文件内容存储在 Pod 的文件系统中
14
+ * 注意:此 resource 存储文件元数据,实际文件内容存储在 Pod 的文件系统中
15
15
  */
16
+ export declare const fileResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
17
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
18
+ name: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
19
+ description: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
20
+ mimeType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
21
+ size: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, true, false>;
22
+ hash: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
23
+ podUri: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
24
+ localPath: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
25
+ syncStatus: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
26
+ lastSyncedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
27
+ owner: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
28
+ sharedWith: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
29
+ folder: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
30
+ tags: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
31
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
32
+ modifiedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
33
+ deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
34
+ starred: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
35
+ pinnedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
36
+ }>>;
16
37
  export declare const fileTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
17
38
  id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
18
39
  name: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
@@ -34,6 +55,6 @@ export declare const fileTable: import("@undefineds.co/drizzle-solid/dist/core/s
34
55
  starred: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
35
56
  pinnedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
36
57
  }>>;
37
- export type FileRow = typeof fileTable.$inferSelect;
38
- export type FileInsert = typeof fileTable.$inferInsert;
39
- export type FileUpdate = typeof fileTable.$inferUpdate;
58
+ export type FileRow = typeof fileResource.$inferSelect;
59
+ export type FileInsert = typeof fileResource.$inferInsert;
60
+ export type FileUpdate = typeof fileResource.$inferUpdate;
@@ -5,7 +5,7 @@ import { UDFS, DCTerms, SCHEMA } from "../namespaces.js";
5
5
  * 标签、索引等元数据功能由 xpod sidecar 提供。
6
6
  * 此 schema 将在未来版本中移除。
7
7
  *
8
- * File Schema
8
+ * File resource
9
9
  * 文件管理模型 - 基于 Solid Pod 存储
10
10
  *
11
11
  * 参考标准:
@@ -13,9 +13,9 @@ import { UDFS, DCTerms, SCHEMA } from "../namespaces.js";
13
13
  * - Schema.org CreativeWork
14
14
  * - LDP NonRDFSource (实际文件)
15
15
  *
16
- * 注意:此表存储文件元数据,实际文件内容存储在 Pod 的文件系统中
16
+ * 注意:此 resource 存储文件元数据,实际文件内容存储在 Pod 的文件系统中
17
17
  */
18
- export const fileTable = podTable("file", {
18
+ export const fileResource = podTable("file", {
19
19
  // 基础信息
20
20
  id: id("id"),
21
21
  name: string("name").predicate(SCHEMA.name).notNull(), // 文件名
@@ -49,3 +49,5 @@ export const fileTable = podTable("file", {
49
49
  type: SCHEMA.MediaObject,
50
50
  namespace: UDFS,
51
51
  });
52
+ // Compatibility alias. New model code should prefer `fileResource`.
53
+ export const fileTable = fileResource;
@@ -1 +1 @@
1
- export { fileTable, type FileRow, type FileInsert, type FileUpdate } from "./file.schema";
1
+ export { fileResource, fileTable, type FileRow, type FileInsert, type FileUpdate } from "./file.schema";
@@ -1 +1 @@
1
- export { fileTable } from "./file.schema.js";
1
+ export { fileResource, fileTable } from "./file.schema.js";
@@ -1,3 +1,4 @@
1
+ export declare function buildGrantSubjectPath(grantId: string): string;
1
2
  export declare const grantResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
2
3
  id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
3
4
  rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", true, true>;
@@ -1,5 +1,8 @@
1
1
  import { podTable, uri, string, text, timestamp, id } from '@undefineds.co/drizzle-solid';
2
2
  import { RDF, ODRL, UDFS, DCTerms } from './namespaces.js';
3
+ export function buildGrantSubjectPath(grantId) {
4
+ return `/settings/autonomy/grants/${encodeURIComponent(grantId)}.ttl`;
5
+ }
3
6
  // Persistent delegation grant resource generated by "do not ask again" decisions.
4
7
  // This is the durable "delegation" layer (distinct from one-off approvals and append-only audit entries).
5
8
  export const grantResource = podTable('grant', {
@@ -1,3 +1,10 @@
1
+ export declare const inboxNotificationResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
2
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
3
+ rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", true, true>;
4
+ actor: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
5
+ object: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
6
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
7
+ }>>;
1
8
  export declare const inboxNotificationTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
2
9
  id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
3
10
  rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", true, true>;
@@ -5,6 +12,6 @@ export declare const inboxNotificationTable: import("@undefineds.co/drizzle-soli
5
12
  object: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
6
13
  createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
7
14
  }>>;
8
- export type InboxNotificationRow = typeof inboxNotificationTable.$inferSelect;
9
- export type InboxNotificationInsert = typeof inboxNotificationTable.$inferInsert;
10
- export type InboxNotificationUpdate = typeof inboxNotificationTable.$inferUpdate;
15
+ export type InboxNotificationRow = typeof inboxNotificationResource.$inferSelect;
16
+ export type InboxNotificationInsert = typeof inboxNotificationResource.$inferInsert;
17
+ export type InboxNotificationUpdate = typeof inboxNotificationResource.$inferUpdate;
@@ -1,7 +1,7 @@
1
1
  import { podTable, uri, timestamp, id } from '@undefineds.co/drizzle-solid';
2
2
  import { AS, DCTerms, RDF } from './namespaces.js';
3
3
  // Solid inbox notifications (protocol channel)
4
- export const inboxNotificationTable = podTable('inbox_notification', {
4
+ export const inboxNotificationResource = podTable('inbox_notification', {
5
5
  id: id('id'),
6
6
  // Protocol inbox messages are not always Announce. Keep rdf:type writable so
7
7
  // app notifications can use as:Announce while other Solid inbox payloads keep their own type.
@@ -17,3 +17,5 @@ export const inboxNotificationTable = podTable('inbox_notification', {
17
17
  namespace: AS,
18
18
  subjectTemplate: '{id}.ttl',
19
19
  });
20
+ // Compatibility alias. New model code should prefer `inboxNotificationResource`.
21
+ export const inboxNotificationTable = inboxNotificationResource;