@undefineds.co/models 0.2.32 → 0.2.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -13,8 +13,10 @@ export { threadRepository } from './thread.repository';
13
13
  export { MessageRole, MessageStatus, messageResource, messageTable, type MessageRoleType, type MessageStatusType, type MessageRow, type MessageInsert, type MessageUpdate, } from './message.schema';
14
14
  export { messageRepository } from './message.repository';
15
15
  export { TaskStatus, TaskTriggerKind, taskResource, taskTable, type TaskStatusType, type TaskTriggerKindType, type TaskRow, type TaskInsert, type TaskUpdate, } from './task.schema';
16
+ export { MatrixMembership, MatrixRoomVisibility, matrixAccountResource, matrixAccountTable, matrixRoomResource, matrixRoomTable, matrixEventResource, matrixEventTable, type MatrixAccountRow, type MatrixAccountInsert, type MatrixAccountUpdate, type MatrixRoomRow, type MatrixRoomInsert, type MatrixRoomUpdate, type MatrixEventRow, type MatrixEventInsert, type MatrixEventUpdate, type MatrixMembershipType, type MatrixRoomVisibilityType, } from './matrix.schema';
17
+ export { matrixAccountRepository, matrixRoomRepository, matrixEventRepository, } from './matrix.repository';
16
18
  export { RunStatus, RunStepType, runResource, runStepResource, runTable, runStepTable, type RunStatusType, type RunStepTypeValue, type RunRow, type RunInsert, type RunUpdate, type RunStepRow, type RunStepInsert, type RunStepUpdate, } from './run.schema';
17
- export { chatResourceId, commandKindFromResourceId, dateParts, messageResourceId, parentDir, resourceKey, runResourceId, runStepResourceId, surfaceIdFromCommandResourceId, taskResourceId, threadResourceId, type CommandKind, type DateInput, type DateParts, } from './resource-id-defaults';
19
+ export { chatResourceId, commandKindFromResourceId, dateParts, messageResourceId, matrixAccountResourceId, matrixEventResourceId, matrixRoomResourceId, parentDir, resourceKey, runResourceId, runStepResourceId, surfaceIdFromCommandResourceId, taskResourceId, threadResourceId, type CommandKind, type DateInput, type DateParts, } from './resource-id-defaults';
18
20
  export { issueResource, issueTable, type IssueStatus, type IssuePriority, type IssueRow, type IssueInsert, type IssueUpdate, } from './issue.schema';
19
21
  export { issueRepository } from './issue.repository';
20
22
  export { MessageBlockType, MessageBlockStatus, type BaseMessageBlock, type PlaceholderMessageBlock, type MainTextMessageBlock, type ThinkingMessageBlock, type ImageMessageBlock, type CodeMessageBlock, type ToolMessageBlock, type FileMessageBlock, type ErrorMessageBlock, type CitationMessageBlock, type MessageBlock, type MessageRichContent, createMessageBlock, isBlockType, parseMessageBlocks, serializeMessageBlocks, } from './types/message-block';
package/dist/index.js CHANGED
@@ -27,8 +27,10 @@ export { threadRepository } from './thread.repository.js';
27
27
  export { MessageRole, MessageStatus, messageResource, messageTable, } from './message.schema.js';
28
28
  export { messageRepository } from './message.repository.js';
29
29
  export { TaskStatus, TaskTriggerKind, taskResource, taskTable, } from './task.schema.js';
30
+ export { MatrixMembership, MatrixRoomVisibility, matrixAccountResource, matrixAccountTable, matrixRoomResource, matrixRoomTable, matrixEventResource, matrixEventTable, } from './matrix.schema.js';
31
+ export { matrixAccountRepository, matrixRoomRepository, matrixEventRepository, } from './matrix.repository.js';
30
32
  export { RunStatus, RunStepType, runResource, runStepResource, runTable, runStepTable, } from './run.schema.js';
31
- export { chatResourceId, commandKindFromResourceId, dateParts, messageResourceId, parentDir, resourceKey, runResourceId, runStepResourceId, surfaceIdFromCommandResourceId, taskResourceId, threadResourceId, } from './resource-id-defaults.js';
33
+ export { chatResourceId, commandKindFromResourceId, dateParts, messageResourceId, matrixAccountResourceId, matrixEventResourceId, matrixRoomResourceId, parentDir, resourceKey, runResourceId, runStepResourceId, surfaceIdFromCommandResourceId, taskResourceId, threadResourceId, } from './resource-id-defaults.js';
32
34
  // Issue - user-facing work item that can be inspected through chat/thread
33
35
  export { issueResource, issueTable, } from './issue.schema.js';
34
36
  export { issueRepository } from './issue.repository.js';
@@ -0,0 +1,183 @@
1
+ export declare const matrixAccountRepository: import("@undefineds.co/drizzle-solid/dist/core/repository").PodRepositoryDescriptor<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
+ matrixUserId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
4
+ webId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
5
+ displayName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
6
+ avatarUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
7
+ deviceId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
8
+ accessTokenHash: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
9
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
10
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
11
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
12
+ }>>, {
13
+ id: string;
14
+ matrixUserId: string;
15
+ webId: string;
16
+ displayName: string;
17
+ avatarUrl: string;
18
+ deviceId: string;
19
+ accessTokenHash: string;
20
+ metadata: Record<string, unknown>;
21
+ createdAt: Date;
22
+ updatedAt: Date;
23
+ }, {
24
+ matrixUserId: string;
25
+ webId: string;
26
+ id?: string | undefined;
27
+ displayName?: string | undefined;
28
+ avatarUrl?: string | undefined;
29
+ deviceId?: string | undefined;
30
+ accessTokenHash?: string | undefined;
31
+ metadata?: Record<string, unknown> | undefined;
32
+ createdAt?: Date | undefined;
33
+ updatedAt?: Date | undefined;
34
+ }, {
35
+ id?: string | null | undefined;
36
+ matrixUserId?: string | undefined;
37
+ webId?: string | undefined;
38
+ displayName?: string | null | undefined;
39
+ avatarUrl?: string | null | undefined;
40
+ deviceId?: string | null | undefined;
41
+ accessTokenHash?: string | null | undefined;
42
+ metadata?: Record<string, unknown> | null | undefined;
43
+ createdAt?: Date | undefined;
44
+ updatedAt?: Date | undefined;
45
+ }, Record<string, unknown>>;
46
+ export declare const matrixRoomRepository: import("@undefineds.co/drizzle-solid/dist/core/repository").PodRepositoryDescriptor<import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
47
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
48
+ matrixRoomId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
49
+ canonicalAlias: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
50
+ name: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
51
+ topic: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
52
+ creator: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
53
+ visibility: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
54
+ roomVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, true>;
55
+ federate: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
56
+ chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
57
+ members: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
58
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
59
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
60
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
61
+ }>>, {
62
+ id: string;
63
+ matrixRoomId: string;
64
+ canonicalAlias: string;
65
+ name: string;
66
+ topic: string;
67
+ creator: string;
68
+ visibility: string;
69
+ roomVersion: string;
70
+ federate: boolean;
71
+ chat: string;
72
+ members: string[];
73
+ metadata: Record<string, unknown>;
74
+ createdAt: Date;
75
+ updatedAt: Date;
76
+ }, {
77
+ matrixRoomId: string;
78
+ id?: string | undefined;
79
+ canonicalAlias?: string | undefined;
80
+ name?: string | undefined;
81
+ topic?: string | undefined;
82
+ creator?: string | undefined;
83
+ visibility?: string | undefined;
84
+ roomVersion?: string | undefined;
85
+ federate?: boolean | undefined;
86
+ chat?: string | undefined;
87
+ members?: string[] | undefined;
88
+ metadata?: Record<string, unknown> | undefined;
89
+ createdAt?: Date | undefined;
90
+ updatedAt?: Date | undefined;
91
+ }, {
92
+ id?: string | null | undefined;
93
+ matrixRoomId?: string | undefined;
94
+ canonicalAlias?: string | null | undefined;
95
+ name?: string | null | undefined;
96
+ topic?: string | null | undefined;
97
+ creator?: string | null | undefined;
98
+ visibility?: string | undefined;
99
+ roomVersion?: string | null | undefined;
100
+ federate?: boolean | null | undefined;
101
+ chat?: string | null | undefined;
102
+ members?: string[] | null | undefined;
103
+ metadata?: Record<string, unknown> | null | undefined;
104
+ createdAt?: Date | undefined;
105
+ updatedAt?: Date | undefined;
106
+ }, Record<string, unknown>>;
107
+ export declare const matrixEventRepository: import("@undefineds.co/drizzle-solid/dist/core/repository").PodRepositoryDescriptor<import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
108
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
109
+ matrixEventId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
110
+ matrixRoomId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
111
+ room: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
112
+ type: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
113
+ stateKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
114
+ sender: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
115
+ senderWebId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
116
+ originServerTs: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, true, false>;
117
+ depth: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, true, true>;
118
+ txnId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
119
+ content: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, true, false>;
120
+ unsigned: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
121
+ redacts: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
122
+ relatedMessage: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
123
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
124
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
125
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
126
+ }>>, {
127
+ id: string;
128
+ matrixEventId: string;
129
+ matrixRoomId: string;
130
+ room: string;
131
+ type: string;
132
+ stateKey: string;
133
+ sender: string;
134
+ senderWebId: string;
135
+ originServerTs: number;
136
+ depth: number;
137
+ txnId: string;
138
+ content: Record<string, unknown>;
139
+ unsigned: Record<string, unknown>;
140
+ redacts: string;
141
+ relatedMessage: string;
142
+ metadata: Record<string, unknown>;
143
+ createdAt: Date;
144
+ updatedAt: Date;
145
+ }, {
146
+ matrixEventId: string;
147
+ matrixRoomId: string;
148
+ type: string;
149
+ sender: string;
150
+ originServerTs: number;
151
+ content: Record<string, unknown>;
152
+ id?: string | undefined;
153
+ room?: string | undefined;
154
+ stateKey?: string | undefined;
155
+ senderWebId?: string | undefined;
156
+ depth?: number | undefined;
157
+ txnId?: string | undefined;
158
+ unsigned?: Record<string, unknown> | undefined;
159
+ redacts?: string | undefined;
160
+ relatedMessage?: string | undefined;
161
+ metadata?: Record<string, unknown> | undefined;
162
+ createdAt?: Date | undefined;
163
+ updatedAt?: Date | undefined;
164
+ }, {
165
+ id?: string | null | undefined;
166
+ matrixEventId?: string | undefined;
167
+ matrixRoomId?: string | undefined;
168
+ room?: string | null | undefined;
169
+ type?: string | undefined;
170
+ stateKey?: string | null | undefined;
171
+ sender?: string | undefined;
172
+ senderWebId?: string | null | undefined;
173
+ originServerTs?: number | undefined;
174
+ depth?: number | undefined;
175
+ txnId?: string | null | undefined;
176
+ content?: Record<string, unknown> | undefined;
177
+ unsigned?: Record<string, unknown> | null | undefined;
178
+ redacts?: string | null | undefined;
179
+ relatedMessage?: string | null | undefined;
180
+ metadata?: Record<string, unknown> | null | undefined;
181
+ createdAt?: Date | undefined;
182
+ updatedAt?: Date | null | undefined;
183
+ }, Record<string, unknown>>;
@@ -0,0 +1,20 @@
1
+ import { definePodRepository } from './repository.js';
2
+ import { matrixAccountResource, matrixEventResource, matrixRoomResource, } from './matrix.schema.js';
3
+ export const matrixAccountRepository = definePodRepository({
4
+ namespace: 'matrixAccount',
5
+ table: matrixAccountResource,
6
+ searchableFields: ['matrixUserId', 'displayName'],
7
+ defaultSort: { field: 'updatedAt', direction: 'desc' },
8
+ });
9
+ export const matrixRoomRepository = definePodRepository({
10
+ namespace: 'matrixRoom',
11
+ table: matrixRoomResource,
12
+ searchableFields: ['matrixRoomId', 'canonicalAlias', 'name', 'topic'],
13
+ defaultSort: { field: 'updatedAt', direction: 'desc' },
14
+ });
15
+ export const matrixEventRepository = definePodRepository({
16
+ namespace: 'matrixEvent',
17
+ table: matrixEventResource,
18
+ searchableFields: ['matrixEventId', 'matrixRoomId', 'type', 'txnId'],
19
+ defaultSort: { field: 'originServerTs', direction: 'asc' },
20
+ });
@@ -0,0 +1,136 @@
1
+ export type MatrixRoomVisibilityType = 'private' | 'public';
2
+ export type MatrixMembershipType = 'join' | 'invite' | 'leave' | 'ban';
3
+ export declare const MatrixRoomVisibility: {
4
+ readonly PRIVATE: "private";
5
+ readonly PUBLIC: "public";
6
+ };
7
+ export declare const MatrixMembership: {
8
+ readonly JOIN: "join";
9
+ readonly INVITE: "invite";
10
+ readonly LEAVE: "leave";
11
+ readonly BAN: "ban";
12
+ };
13
+ /**
14
+ * Matrix account/device state owned by a Pod.
15
+ *
16
+ * This resource records the Matrix protocol identity projected from a Solid
17
+ * identity. Tokens are represented by hashes only; API handlers own raw token
18
+ * issuance/verification.
19
+ */
20
+ export declare const matrixAccountResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
21
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
22
+ matrixUserId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
23
+ webId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
24
+ displayName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
25
+ avatarUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
26
+ deviceId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
27
+ accessTokenHash: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
28
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
29
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
30
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
31
+ }>>;
32
+ /**
33
+ * Matrix room projected into Pod storage.
34
+ *
35
+ * `chat` links the protocol room to the existing Solid Chat conversation
36
+ * resource so Matrix messages can also participate in xpod chat views.
37
+ */
38
+ export declare const matrixRoomResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
39
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
40
+ matrixRoomId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
41
+ canonicalAlias: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
42
+ name: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
43
+ topic: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
44
+ creator: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
45
+ visibility: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
46
+ roomVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, true>;
47
+ federate: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
48
+ chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
49
+ members: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
50
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
51
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
52
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
53
+ }>>;
54
+ /**
55
+ * Matrix event resource.
56
+ *
57
+ * Events are date-bucketed under their room and can optionally link to the
58
+ * xpod/Solid Chat message generated by the same protocol send operation.
59
+ */
60
+ export declare const matrixEventResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
61
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
62
+ matrixEventId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
63
+ matrixRoomId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
64
+ room: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
65
+ type: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
66
+ stateKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
67
+ sender: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
68
+ senderWebId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
69
+ originServerTs: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, true, false>;
70
+ depth: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, true, true>;
71
+ txnId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
72
+ content: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, true, false>;
73
+ unsigned: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
74
+ redacts: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
75
+ relatedMessage: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
76
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
77
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
78
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
79
+ }>>;
80
+ export declare const matrixAccountTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
81
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
82
+ matrixUserId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
83
+ webId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
84
+ displayName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
85
+ avatarUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
86
+ deviceId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
87
+ accessTokenHash: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
88
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
89
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
90
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
91
+ }>>;
92
+ export declare const matrixRoomTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
93
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
94
+ matrixRoomId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
95
+ canonicalAlias: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
96
+ name: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
97
+ topic: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
98
+ creator: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
99
+ visibility: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
100
+ roomVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, true>;
101
+ federate: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
102
+ chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
103
+ members: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
104
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
105
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
106
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
107
+ }>>;
108
+ export declare const matrixEventTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
109
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
110
+ matrixEventId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
111
+ matrixRoomId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
112
+ room: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
113
+ type: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
114
+ stateKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
115
+ sender: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
116
+ senderWebId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
117
+ originServerTs: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, true, false>;
118
+ depth: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, true, true>;
119
+ txnId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
120
+ content: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, true, false>;
121
+ unsigned: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
122
+ redacts: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
123
+ relatedMessage: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
124
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
125
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
126
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
127
+ }>>;
128
+ export type MatrixAccountRow = typeof matrixAccountResource.$inferSelect;
129
+ export type MatrixAccountInsert = typeof matrixAccountResource.$inferInsert;
130
+ export type MatrixAccountUpdate = typeof matrixAccountResource.$inferUpdate;
131
+ export type MatrixRoomRow = typeof matrixRoomResource.$inferSelect;
132
+ export type MatrixRoomInsert = typeof matrixRoomResource.$inferInsert;
133
+ export type MatrixRoomUpdate = typeof matrixRoomResource.$inferUpdate;
134
+ export type MatrixEventRow = typeof matrixEventResource.$inferSelect;
135
+ export type MatrixEventInsert = typeof matrixEventResource.$inferInsert;
136
+ export type MatrixEventUpdate = typeof matrixEventResource.$inferUpdate;
@@ -0,0 +1,100 @@
1
+ import { boolean, id, integer, object, podTable, string, text, timestamp, uri } from '@undefineds.co/drizzle-solid';
2
+ import { DCTerms, SCHEMA, SIOC, UDFS, WF } from './namespaces.js';
3
+ import { chatResource } from './chat.schema.js';
4
+ import { messageResource } from './message.schema.js';
5
+ import { matrixAccountResourceId, matrixEventResourceId, matrixRoomResourceId, } from './resource-id-defaults.js';
6
+ export const MatrixRoomVisibility = {
7
+ PRIVATE: 'private',
8
+ PUBLIC: 'public',
9
+ };
10
+ export const MatrixMembership = {
11
+ JOIN: 'join',
12
+ INVITE: 'invite',
13
+ LEAVE: 'leave',
14
+ BAN: 'ban',
15
+ };
16
+ /**
17
+ * Matrix account/device state owned by a Pod.
18
+ *
19
+ * This resource records the Matrix protocol identity projected from a Solid
20
+ * identity. Tokens are represented by hashes only; API handlers own raw token
21
+ * issuance/verification.
22
+ */
23
+ export const matrixAccountResource = podTable('matrix_account', {
24
+ id: id('id').default(matrixAccountResourceId),
25
+ matrixUserId: string('matrixUserId').predicate(UDFS.matrixUserId).notNull(),
26
+ webId: uri('webId').predicate(UDFS.term('webId')).notNull(),
27
+ displayName: string('displayName').predicate(SCHEMA.name),
28
+ avatarUrl: uri('avatarUrl').predicate(SCHEMA.image),
29
+ deviceId: string('deviceId').predicate(UDFS.matrixDeviceId),
30
+ accessTokenHash: string('accessTokenHash').predicate(UDFS.matrixAccessTokenHash),
31
+ metadata: object('metadata').predicate(UDFS.metadata),
32
+ createdAt: timestamp('createdAt').predicate(DCTerms.created).notNull().defaultNow(),
33
+ updatedAt: timestamp('updatedAt').predicate(DCTerms.modified).notNull().defaultNow(),
34
+ }, {
35
+ base: '/.data/matrix/',
36
+ sparqlEndpoint: '/.data/matrix/-/sparql',
37
+ type: UDFS.MatrixAccount,
38
+ namespace: UDFS,
39
+ });
40
+ /**
41
+ * Matrix room projected into Pod storage.
42
+ *
43
+ * `chat` links the protocol room to the existing Solid Chat conversation
44
+ * resource so Matrix messages can also participate in xpod chat views.
45
+ */
46
+ export const matrixRoomResource = podTable('matrix_room', {
47
+ id: id('id').default(matrixRoomResourceId),
48
+ matrixRoomId: string('matrixRoomId').predicate(UDFS.matrixRoomId).notNull(),
49
+ canonicalAlias: string('canonicalAlias').predicate(UDFS.matrixRoomAlias),
50
+ name: string('name').predicate(DCTerms.title),
51
+ topic: text('topic').predicate(DCTerms.description),
52
+ creator: uri('creator').predicate(UDFS.term('creator')),
53
+ visibility: string('visibility').predicate(UDFS.status).notNull().default(MatrixRoomVisibility.PRIVATE),
54
+ roomVersion: string('roomVersion').predicate(UDFS.matrixRoomVersion).default('11'),
55
+ federate: boolean('federate').predicate(UDFS.term('federate')).default(false),
56
+ chat: uri('chat').predicate(UDFS.conversation).link(chatResource),
57
+ members: uri('members').array().predicate(WF.participant),
58
+ metadata: object('metadata').predicate(UDFS.metadata),
59
+ createdAt: timestamp('createdAt').predicate(DCTerms.created).notNull().defaultNow(),
60
+ updatedAt: timestamp('updatedAt').predicate(DCTerms.modified).notNull().defaultNow(),
61
+ }, {
62
+ base: '/.data/matrix/',
63
+ sparqlEndpoint: '/.data/matrix/-/sparql',
64
+ type: UDFS.MatrixRoom,
65
+ namespace: UDFS,
66
+ });
67
+ /**
68
+ * Matrix event resource.
69
+ *
70
+ * Events are date-bucketed under their room and can optionally link to the
71
+ * xpod/Solid Chat message generated by the same protocol send operation.
72
+ */
73
+ export const matrixEventResource = podTable('matrix_event', {
74
+ id: id('id').default(matrixEventResourceId),
75
+ matrixEventId: string('matrixEventId').predicate(UDFS.matrixEventId).notNull(),
76
+ matrixRoomId: string('matrixRoomId').predicate(UDFS.matrixRoomId).notNull(),
77
+ room: uri('room').predicate(SIOC.hasContainer).link(matrixRoomResource),
78
+ type: string('type').predicate(UDFS.matrixEventType).notNull(),
79
+ stateKey: string('stateKey').predicate(UDFS.matrixStateKey),
80
+ sender: string('sender').predicate(UDFS.matrixSender).notNull(),
81
+ senderWebId: uri('senderWebId').predicate(UDFS.matrixSenderWebId),
82
+ originServerTs: integer('originServerTs').predicate(UDFS.matrixOriginServerTs).notNull(),
83
+ depth: integer('depth').predicate(UDFS.matrixDepth).notNull().default(1),
84
+ txnId: string('txnId').predicate(UDFS.matrixTxnId),
85
+ content: object('content').predicate(UDFS.messageContent).notNull(),
86
+ unsigned: object('unsigned').predicate(UDFS.matrixUnsigned),
87
+ redacts: uri('redacts').predicate(UDFS.term('redacts')),
88
+ relatedMessage: uri('relatedMessage').predicate(WF.message).link(messageResource),
89
+ metadata: object('metadata').predicate(UDFS.metadata),
90
+ createdAt: timestamp('createdAt').predicate(DCTerms.created).notNull().defaultNow(),
91
+ updatedAt: timestamp('updatedAt').predicate(DCTerms.modified),
92
+ }, {
93
+ base: '/.data/matrix/',
94
+ sparqlEndpoint: '/.data/matrix/-/sparql',
95
+ type: UDFS.MatrixEvent,
96
+ namespace: UDFS,
97
+ });
98
+ export const matrixAccountTable = matrixAccountResource;
99
+ export const matrixRoomTable = matrixRoomResource;
100
+ export const matrixEventTable = matrixEventResource;
@@ -254,6 +254,25 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
254
254
  taskSteps: 'taskSteps',
255
255
  currentStep: 'currentStep',
256
256
  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',
257
276
  // Favorites V2
258
277
  sourceModule: 'sourceModule',
259
278
  sourceId: 'sourceId',
@@ -16,3 +16,6 @@ export declare function threadResourceId(key: string | undefined, row?: Record<s
16
16
  export declare function messageResourceId(key: string | undefined, row?: Record<string, unknown>): string;
17
17
  export declare function runResourceId(key: string | undefined, row?: Record<string, unknown>): string;
18
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;
@@ -82,3 +82,27 @@ export function runStepResourceId(key, row) {
82
82
  const { yyyy, MM, dd } = dateParts(row?.createdAt);
83
83
  return `${commandKind}/${surfaceId}/${yyyy}/${MM}/${dd}/runs.ttl#${localKey}`;
84
84
  }
85
+ function sanitizePathSlot(value, fallback) {
86
+ const raw = value && value.length > 0 ? value : resourceKey(undefined, fallback);
87
+ return encodeURIComponent(raw)
88
+ .replace(/[!'()*]/g, (char) => `%${char.charCodeAt(0).toString(16).toUpperCase()}`)
89
+ .replace(/%/g, '~');
90
+ }
91
+ export function matrixAccountResourceId(key, row) {
92
+ const matrixUserId = typeof row?.matrixUserId === 'string' ? row.matrixUserId : undefined;
93
+ const localKey = sanitizePathSlot(key ?? matrixUserId, 'matrix-user');
94
+ return `accounts/${localKey}.ttl#this`;
95
+ }
96
+ export function matrixRoomResourceId(key, row) {
97
+ const matrixRoomId = typeof row?.matrixRoomId === 'string' ? row.matrixRoomId : undefined;
98
+ const localKey = sanitizePathSlot(key ?? matrixRoomId, 'matrix-room');
99
+ return `rooms/${localKey}/index.ttl#this`;
100
+ }
101
+ export function matrixEventResourceId(key, row) {
102
+ const matrixEventId = typeof row?.matrixEventId === 'string' ? row.matrixEventId : undefined;
103
+ const matrixRoomId = typeof row?.matrixRoomId === 'string' ? row.matrixRoomId : undefined;
104
+ const localKey = sanitizePathSlot(key ?? matrixEventId, 'matrix-event');
105
+ const roomSlot = sanitizePathSlot(matrixRoomId, 'matrix-room');
106
+ const { yyyy, MM, dd } = dateParts(row?.createdAt ?? row?.originServerTs);
107
+ return `rooms/${roomSlot}/${yyyy}/${MM}/${dd}/events.ttl#${localKey}`;
108
+ }
package/dist/schema.d.ts CHANGED
@@ -316,6 +316,54 @@ export declare const solidResources: {
316
316
  closedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
317
317
  deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
318
318
  }>>;
319
+ matrixAccountResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
320
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
321
+ matrixUserId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
322
+ webId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
323
+ displayName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
324
+ avatarUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
325
+ deviceId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
326
+ accessTokenHash: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
327
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
328
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
329
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
330
+ }>>;
331
+ matrixRoomResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
332
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
333
+ matrixRoomId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
334
+ canonicalAlias: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
335
+ name: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
336
+ topic: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
337
+ creator: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
338
+ visibility: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
339
+ roomVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, true>;
340
+ federate: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
341
+ chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
342
+ members: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
343
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
344
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
345
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
346
+ }>>;
347
+ matrixEventResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
348
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
349
+ matrixEventId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
350
+ matrixRoomId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
351
+ room: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
352
+ type: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
353
+ stateKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
354
+ sender: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
355
+ senderWebId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
356
+ originServerTs: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, true, false>;
357
+ depth: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, true, true>;
358
+ txnId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
359
+ content: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, true, false>;
360
+ unsigned: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
361
+ redacts: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
362
+ relatedMessage: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
363
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
364
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
365
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
366
+ }>>;
319
367
  approvalResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
320
368
  id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
321
369
  session: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
@@ -709,6 +757,54 @@ export declare const solidSchema: {
709
757
  closedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
710
758
  deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
711
759
  }>>;
760
+ matrixAccountTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
761
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
762
+ matrixUserId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
763
+ webId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
764
+ displayName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
765
+ avatarUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
766
+ deviceId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
767
+ accessTokenHash: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
768
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
769
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
770
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
771
+ }>>;
772
+ matrixRoomTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
773
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
774
+ matrixRoomId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
775
+ canonicalAlias: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
776
+ name: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
777
+ topic: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
778
+ creator: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
779
+ visibility: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
780
+ roomVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, true>;
781
+ federate: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
782
+ chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
783
+ members: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
784
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
785
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
786
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
787
+ }>>;
788
+ matrixEventTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
789
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
790
+ matrixEventId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
791
+ matrixRoomId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
792
+ room: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
793
+ type: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
794
+ stateKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
795
+ sender: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
796
+ senderWebId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
797
+ originServerTs: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, true, false>;
798
+ depth: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, true, true>;
799
+ txnId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
800
+ content: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, true, false>;
801
+ unsigned: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
802
+ redacts: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
803
+ relatedMessage: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
804
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
805
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
806
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
807
+ }>>;
712
808
  approvalTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
713
809
  id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
714
810
  session: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
package/dist/schema.js CHANGED
@@ -12,6 +12,7 @@ import { fileResource, fileTable } from './file/file.schema.js';
12
12
  import { grantResource, grantTable } from './grant.schema.js';
13
13
  import { inboxNotificationResource, inboxNotificationTable } from './inbox-notification.schema.js';
14
14
  import { issueResource, issueTable } from './issue.schema.js';
15
+ import { matrixAccountResource, matrixAccountTable, matrixEventResource, matrixEventTable, matrixRoomResource, matrixRoomTable } from './matrix.schema.js';
15
16
  import { messageResource, messageTable } from './message.schema.js';
16
17
  import { solidProfileResource, solidProfileTable } from './profile.schema.js';
17
18
  import { runResource, runStepResource, runTable, runStepTable } from './run.schema.js';
@@ -41,6 +42,9 @@ export const solidResources = {
41
42
  favoriteResource,
42
43
  settingsResource,
43
44
  issueResource,
45
+ matrixAccountResource,
46
+ matrixRoomResource,
47
+ matrixEventResource,
44
48
  // Sidecar collaboration data
45
49
  approvalResource,
46
50
  auditResource,
@@ -71,6 +75,9 @@ export const solidSchema = {
71
75
  favoriteTable,
72
76
  settingsTable,
73
77
  issueTable,
78
+ matrixAccountTable,
79
+ matrixRoomTable,
80
+ matrixEventTable,
74
81
  // Sidecar collaboration data
75
82
  approvalTable,
76
83
  auditTable,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@undefineds.co/models",
3
- "version": "0.2.32",
3
+ "version": "0.2.34",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/skills/README.md CHANGED
@@ -18,9 +18,9 @@ Release automation validates this directory and packages:
18
18
  - a Claude Code plugin archive that contains the same skill source
19
19
 
20
20
  The publish workflow uploads those artifacts to the GitHub Release for the
21
- version tag. The repo also contains Codex and Claude Code marketplace manifests,
22
- so both tools can register the models repo as a Git marketplace and install the
23
- bundled plugin directly.
21
+ version tag. Plugin marketplace indexes live in the separate
22
+ `undefinedsco/marketplace` repository so one marketplace can aggregate plugins
23
+ from `models`, `xpod`, LinX, and future Undefineds repositories.
24
24
 
25
25
  Codex users can install the skill from the repository path once these files are
26
26
  on `main`:
@@ -32,15 +32,15 @@ npx codex-marketplace add undefinedsco/models/skills/solid-modeling --skill --gl
32
32
  Codex plugin users can register the Git marketplace and then install the plugin:
33
33
 
34
34
  ```bash
35
- codex plugin marketplace add undefinedsco/models --ref main
35
+ codex plugin marketplace add undefinedsco/marketplace --ref main
36
36
  codex plugin add solid-modeling@undefineds
37
37
  ```
38
38
 
39
- Claude Code users can register the same Git marketplace and install the plugin
40
- with the matching selector:
39
+ Claude Code users can register the same marketplace and install the plugin with
40
+ the matching selector:
41
41
 
42
42
  ```bash
43
- claude plugin marketplace add undefinedsco/models
43
+ claude plugin marketplace add undefinedsco/marketplace
44
44
  claude plugin install solid-modeling@undefineds
45
45
  ```
46
46