@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 +3 -1
- package/dist/index.js +3 -1
- package/dist/matrix.repository.d.ts +183 -0
- package/dist/matrix.repository.js +20 -0
- package/dist/matrix.schema.d.ts +136 -0
- package/dist/matrix.schema.js +100 -0
- package/dist/namespaces.js +19 -0
- package/dist/resource-id-defaults.d.ts +3 -0
- package/dist/resource-id-defaults.js +24 -0
- package/dist/schema.d.ts +96 -0
- package/dist/schema.js +7 -0
- package/package.json +1 -1
- package/skills/README.md +7 -7
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;
|
package/dist/namespaces.js
CHANGED
|
@@ -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
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.
|
|
22
|
-
|
|
23
|
-
|
|
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/
|
|
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
|
|
40
|
-
|
|
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/
|
|
43
|
+
claude plugin marketplace add undefinedsco/marketplace
|
|
44
44
|
claude plugin install solid-modeling@undefineds
|
|
45
45
|
```
|
|
46
46
|
|