@undefineds.co/models 0.2.2 → 0.2.11

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/profile.js CHANGED
@@ -1,7 +1,11 @@
1
- import { profileRepository } from "./profile.repository.js";
1
+ import { pickSolidProfileDisplayName, profileRepository } from "./profile.repository.js";
2
+ import { FOAF, VCARD } from "./namespaces.js";
3
+ import { extractProfileUsernameFromWebId } from "./client/index.js";
4
+ import { Parser as N3Parser } from "n3";
5
+ import { applySolidComunicaPatches } from "./comunica-patches.js";
2
6
  export { pickSolidProfileDisplayName, profileRepository, } from "./profile.repository.js";
3
7
  export async function createSolidProfileDatabase(session) {
4
- await applySolidProfileComunicaPatches();
8
+ applySolidProfileComunicaPatches();
5
9
  const [{ drizzle }, { solidProfileTable }] = await Promise.all([
6
10
  import("@undefineds.co/drizzle-solid"),
7
11
  import("./profile.schema.js"),
@@ -12,17 +16,8 @@ export async function createSolidProfileDatabase(session) {
12
16
  schema: { solidProfileTable },
13
17
  });
14
18
  }
15
- export async function applySolidProfileComunicaPatches(requireModule) {
16
- const resolvedRequire = requireModule ?? await createNodeRequire();
17
- if (!resolvedRequire) {
18
- return false;
19
- }
20
- return [
21
- "@comunica/actor-query-result-serialize-sparql-json",
22
- "@comunica/actor-query-result-serialize-stats",
23
- "@comunica/query-sparql-solid/node_modules/@comunica/actor-query-result-serialize-sparql-json",
24
- "@comunica/query-sparql-solid/node_modules/@comunica/actor-query-result-serialize-stats",
25
- ].map((moduleName) => patchActionObserverHttp(resolvedRequire, moduleName)).some(Boolean);
19
+ export function applySolidProfileComunicaPatches() {
20
+ return applySolidComunicaPatches();
26
21
  }
27
22
  export async function resolveSolidProfile(db, webId) {
28
23
  return await profileRepository.findByWebId(db, webId);
@@ -39,6 +34,32 @@ export async function resolveSolidProfileDisplayName(db, webId) {
39
34
  export async function resolveSolidProfileIdentityWithReader(db, webId) {
40
35
  return await profileRepository.resolveIdentity(db, webId);
41
36
  }
37
+ export async function resolveSolidProfileIdentityFromWebIdDocument(session, options = {}) {
38
+ const webId = options.webId ?? session.info?.webId;
39
+ if (!webId?.trim() || typeof session.fetch !== 'function') {
40
+ return null;
41
+ }
42
+ const profileDocumentUrl = stripHash(webId);
43
+ const response = await session.fetch(profileDocumentUrl, {
44
+ headers: {
45
+ Accept: 'text/turtle, application/ld+json;q=0.9, text/n3;q=0.8, */*;q=0.1',
46
+ },
47
+ });
48
+ if (!response.ok) {
49
+ throw new Error(`Failed to fetch WebID profile: ${response.status} ${response.statusText}`.trim());
50
+ }
51
+ const contentType = response.headers.get('content-type') ?? '';
52
+ const body = await response.text();
53
+ if (!body.trim()) {
54
+ return buildSolidProfileIdentity(webId, null);
55
+ }
56
+ const profile = await parseSolidProfileDocument(body, {
57
+ contentType,
58
+ profileDocumentUrl,
59
+ webId,
60
+ });
61
+ return buildSolidProfileIdentity(webId, profile);
62
+ }
42
63
  export async function resolveSolidProfileIdentity(session, options = {}) {
43
64
  const webId = options.webId ?? session.info?.webId;
44
65
  if (!webId?.trim()) {
@@ -47,42 +68,111 @@ export async function resolveSolidProfileIdentity(session, options = {}) {
47
68
  const db = await createSolidProfileDatabase(session);
48
69
  return resolveSolidProfileIdentityWithReader(db, webId);
49
70
  }
50
- async function createNodeRequire() {
51
- if (typeof process === 'undefined') {
52
- return null;
71
+ export async function parseSolidProfileDocument(source, options) {
72
+ const contentType = options.contentType?.toLowerCase() ?? '';
73
+ if (contentType.includes('application/ld+json') || source.trimStart().startsWith('{')) {
74
+ return parseJsonLdProfileDocument(source, options.webId);
53
75
  }
76
+ return await parseTurtleProfileDocument(source, options);
77
+ }
78
+ async function parseTurtleProfileDocument(source, options) {
79
+ const Parser = N3Parser;
80
+ const parser = new Parser({ baseIRI: options.profileDocumentUrl });
81
+ const quads = parser.parse(source);
82
+ return pickProfileFromQuads(quads, options.webId);
83
+ }
84
+ function parseJsonLdProfileDocument(source, webId) {
54
85
  try {
55
- const moduleLib = await import("node:module");
56
- if (typeof moduleLib.createRequire !== 'function') {
86
+ const parsed = JSON.parse(source);
87
+ const nodes = Array.isArray(parsed)
88
+ ? parsed
89
+ : isRecord(parsed) && Array.isArray(parsed['@graph'])
90
+ ? parsed['@graph']
91
+ : [parsed];
92
+ const webIdNode = nodes.find((node) => isRecord(node) && node['@id'] === webId);
93
+ const node = isRecord(webIdNode) ? webIdNode : nodes.find(isRecord);
94
+ if (!node) {
57
95
  return null;
58
96
  }
59
- return moduleLib.createRequire(import.meta.url);
97
+ return normalizeProfileRow({
98
+ id: webId,
99
+ name: pickJsonLdString(node, VCARD.fn),
100
+ nick: pickJsonLdString(node, FOAF.nick),
101
+ avatar: pickJsonLdString(node, VCARD.hasPhoto),
102
+ note: pickJsonLdString(node, VCARD.note),
103
+ email: pickJsonLdString(node, VCARD.hasEmail),
104
+ phone: pickJsonLdString(node, VCARD.hasTelephone),
105
+ region: pickJsonLdString(node, VCARD.region),
106
+ gender: pickJsonLdString(node, VCARD.hasGender),
107
+ });
60
108
  }
61
109
  catch {
62
110
  return null;
63
111
  }
64
112
  }
65
- function patchActionObserverHttp(requireModule, moduleName) {
66
- try {
67
- const module = requireModule(moduleName);
68
- const prototype = module.ActionObserverHttp?.prototype;
69
- const originalOnRun = prototype?.onRun;
70
- if (!prototype || typeof originalOnRun !== 'function') {
71
- return false;
113
+ function pickProfileFromQuads(quads, webId) {
114
+ const profile = { id: webId };
115
+ for (const quad of quads) {
116
+ if (quad.subject.value !== webId) {
117
+ continue;
72
118
  }
73
- if (prototype.__linxObservedActorsPatchApplied) {
74
- return true;
119
+ const predicate = quad.predicate.value;
120
+ const value = quad.object.value;
121
+ if (!predicate || !value) {
122
+ continue;
75
123
  }
76
- prototype.onRun = function patchedActionObserverOnRun(actor, action, output) {
77
- if (!Array.isArray(this.observedActors)) {
78
- this.observedActors = [];
79
- }
80
- return originalOnRun.call(this, actor, action, output);
81
- };
82
- prototype.__linxObservedActorsPatchApplied = true;
83
- return true;
124
+ if (predicate === VCARD.fn)
125
+ profile.name = value;
126
+ else if (predicate === FOAF.nick)
127
+ profile.nick = value;
128
+ else if (predicate === VCARD.hasPhoto)
129
+ profile.avatar = value;
130
+ else if (predicate === VCARD.note)
131
+ profile.note = value;
132
+ else if (predicate === VCARD.hasEmail)
133
+ profile.email = value;
134
+ else if (predicate === VCARD.hasTelephone)
135
+ profile.phone = value;
136
+ else if (predicate === VCARD.region)
137
+ profile.region = value;
138
+ else if (predicate === VCARD.hasGender)
139
+ profile.gender = value;
84
140
  }
85
- catch {
86
- return false;
141
+ return normalizeProfileRow(profile);
142
+ }
143
+ function buildSolidProfileIdentity(webId, profile) {
144
+ return {
145
+ webId,
146
+ profile,
147
+ displayName: pickSolidProfileDisplayName(profile),
148
+ username: extractProfileUsernameFromWebId(webId),
149
+ };
150
+ }
151
+ function normalizeProfileRow(profile) {
152
+ const normalized = Object.fromEntries(Object.entries(profile).filter(([, value]) => typeof value === 'string' && value.trim()));
153
+ return Object.keys(normalized).length > 1
154
+ ? normalized
155
+ : null;
156
+ }
157
+ function pickJsonLdString(node, iri) {
158
+ return normalizeJsonLdValue(node[iri]);
159
+ }
160
+ function normalizeJsonLdValue(value) {
161
+ if (typeof value === 'string') {
162
+ return value;
163
+ }
164
+ if (Array.isArray(value)) {
165
+ return value.map(normalizeJsonLdValue).find(Boolean);
166
+ }
167
+ if (isRecord(value)) {
168
+ return normalizeJsonLdValue(value['@value'] ?? value['@id']);
87
169
  }
170
+ return undefined;
171
+ }
172
+ function stripHash(value) {
173
+ const index = value.indexOf('#');
174
+ return index >= 0 ? value.slice(0, index) : value;
175
+ }
176
+ function isRecord(value) {
177
+ return typeof value === 'object' && value !== null;
88
178
  }
package/dist/schema.d.ts CHANGED
@@ -1,3 +1,247 @@
1
+ export declare const solidResources: {
2
+ solidProfileTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
3
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
4
+ name: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
5
+ nick: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
6
+ avatar: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
7
+ note: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
8
+ email: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
9
+ phone: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
10
+ region: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
11
+ gender: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
12
+ favorite: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
13
+ inbox: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
14
+ }>>;
15
+ contactTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
16
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
17
+ name: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
18
+ avatarUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
19
+ entityUri: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
20
+ rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, true>;
21
+ contactType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
22
+ isPublic: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
23
+ externalPlatform: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
24
+ externalId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
25
+ alias: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
26
+ starred: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
27
+ note: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
28
+ sortKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
29
+ gender: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
30
+ province: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
31
+ city: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
32
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
33
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
34
+ deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
35
+ lastSyncedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
36
+ }>>;
37
+ agentTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
38
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
39
+ name: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
40
+ description: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
41
+ avatarUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
42
+ instructions: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
43
+ provider: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
44
+ model: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
45
+ temperature: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
46
+ tools: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "string", false, false>;
47
+ contextRound: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
48
+ ttsModel: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
49
+ videoModel: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
50
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
51
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
52
+ deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
53
+ }>>;
54
+ chatResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
55
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
56
+ title: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
57
+ description: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
58
+ avatarUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
59
+ starred: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
60
+ muted: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
61
+ unreadCount: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
62
+ contact: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
63
+ participants: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
64
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
65
+ lastActiveAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
66
+ lastMessageId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
67
+ lastMessagePreview: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
68
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
69
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
70
+ }>>;
71
+ sessionResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
72
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
73
+ ownerWebId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
74
+ chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
75
+ thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
76
+ sessionType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
77
+ status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
78
+ tool: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
79
+ tokenUsage: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
80
+ policy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
81
+ policyVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
82
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
83
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
84
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
85
+ archivedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
86
+ }>>;
87
+ threadResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
88
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
89
+ chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
90
+ title: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
91
+ starred: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
92
+ workspace: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
93
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
94
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
95
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
96
+ }>>;
97
+ messageResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
98
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
99
+ chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
100
+ thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
101
+ maker: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
102
+ role: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
103
+ content: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
104
+ richContent: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
105
+ status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
106
+ replacedBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
107
+ deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
108
+ senderName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
109
+ senderAvatarUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
110
+ mentions: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
111
+ replyTo: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
112
+ routedBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
113
+ routeTargetAgentId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
114
+ coordinationId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
115
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
116
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
117
+ }>>;
118
+ credentialTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
119
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
120
+ provider: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
121
+ service: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
122
+ status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
123
+ apiKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
124
+ baseUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
125
+ label: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
126
+ lastUsedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
127
+ failCount: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
128
+ rateLimitResetAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
129
+ }>>;
130
+ aiProviderTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
131
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
132
+ baseUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
133
+ proxyUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
134
+ hasModel: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
135
+ }>>;
136
+ aiModelTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
137
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
138
+ displayName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
139
+ modelType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, true>;
140
+ isProvidedBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
141
+ dimension: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, false>;
142
+ status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, true>;
143
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
144
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
145
+ }>>;
146
+ fileTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
147
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
148
+ name: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
149
+ description: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
150
+ mimeType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
151
+ size: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, true, false>;
152
+ hash: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
153
+ podUri: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
154
+ localPath: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
155
+ syncStatus: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
156
+ lastSyncedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
157
+ owner: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
158
+ sharedWith: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
159
+ folder: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
160
+ tags: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
161
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
162
+ modifiedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
163
+ deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
164
+ starred: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
165
+ pinnedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
166
+ }>>;
167
+ favoriteTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
168
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
169
+ targetType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
170
+ targetUri: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
171
+ title: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
172
+ snapshotContent: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
173
+ snapshotAuthor: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
174
+ sourceModule: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
175
+ sourceId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
176
+ searchText: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
177
+ snapshotMeta: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
178
+ favoredAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
179
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
180
+ }>>;
181
+ settingsTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
182
+ key: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
183
+ value: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
184
+ valueType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
185
+ category: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
186
+ label: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
187
+ description: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
188
+ owner: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
189
+ isSensitive: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
190
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
191
+ modifiedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
192
+ }>>;
193
+ approvalTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
194
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
195
+ session: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
196
+ toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
197
+ toolName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
198
+ target: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
199
+ action: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
200
+ risk: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
201
+ status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
202
+ assignedTo: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
203
+ decisionBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
204
+ decisionRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
205
+ onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
206
+ reason: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
207
+ policyVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
208
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
209
+ resolvedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
210
+ }>>;
211
+ auditTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
212
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
213
+ action: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
214
+ actor: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
215
+ actorRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
216
+ onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
217
+ session: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
218
+ toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
219
+ approval: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
220
+ context: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
221
+ policy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
222
+ policyVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
223
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
224
+ }>>;
225
+ grantTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
226
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
227
+ rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", true, true>;
228
+ target: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
229
+ action: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
230
+ effect: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
231
+ riskCeiling: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
232
+ decisionBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
233
+ decisionRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
234
+ onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
235
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
236
+ revokedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
237
+ }>>;
238
+ inboxNotificationTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
239
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
240
+ actor: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
241
+ object: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
242
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
243
+ }>>;
244
+ };
1
245
  export declare const solidSchema: {
2
246
  solidProfileTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
3
247
  id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
@@ -71,8 +315,8 @@ export declare const solidSchema: {
71
315
  sessionTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
72
316
  id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
73
317
  ownerWebId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
74
- chatId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
75
- threadId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
318
+ chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
319
+ thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
76
320
  sessionType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
77
321
  status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
78
322
  tool: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
@@ -224,7 +468,7 @@ export declare const solidSchema: {
224
468
  }>>;
225
469
  grantTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
226
470
  id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
227
- rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, true>;
471
+ rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", true, true>;
228
472
  target: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
229
473
  action: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
230
474
  effect: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
package/dist/schema.js CHANGED
@@ -3,18 +3,39 @@ import { approvalTable } from './approval.schema.js';
3
3
  import { auditTable } from './audit.schema.js';
4
4
  import { aiModelTable } from './ai-model.schema.js';
5
5
  import { aiProviderTable } from './ai-provider.schema.js';
6
- import { chatTable } from './chat.schema.js';
6
+ import { chatResource, chatTable } from './chat.schema.js';
7
7
  import { contactTable } from './contact.schema.js';
8
8
  import { credentialTable } from './credential.schema.js';
9
9
  import { favoriteTable } from './favorite/favorite.schema.js';
10
10
  import { fileTable } from './file/file.schema.js';
11
11
  import { grantTable } from './grant.schema.js';
12
12
  import { inboxNotificationTable } from './inbox-notification.schema.js';
13
- import { messageTable } from './message.schema.js';
13
+ import { messageResource, messageTable } from './message.schema.js';
14
14
  import { solidProfileTable } from './profile.schema.js';
15
- import { sessionTable } from './session/index.js';
15
+ import { sessionResource, sessionTable } from './session/index.js';
16
16
  import { settingsTable } from './settings/settings.schema.js';
17
- import { threadTable } from './thread.schema.js';
17
+ import { threadResource, threadTable } from './thread.schema.js';
18
+ export const solidResources = {
19
+ solidProfileTable,
20
+ contactTable,
21
+ agentTable,
22
+ chatResource,
23
+ sessionResource,
24
+ threadResource,
25
+ messageResource,
26
+ credentialTable,
27
+ aiProviderTable,
28
+ aiModelTable,
29
+ fileTable,
30
+ favoriteTable,
31
+ settingsTable,
32
+ // Sidecar collaboration data
33
+ approvalTable,
34
+ auditTable,
35
+ grantTable,
36
+ inboxNotificationTable,
37
+ };
38
+ // Compatibility schema for existing drizzle-solid call sites.
18
39
  export const solidSchema = {
19
40
  solidProfileTable,
20
41
  contactTable,
@@ -1 +1 @@
1
- export { sessionTable, type SessionType, type SessionStatus, type SessionRow, type SessionInsert, type SessionUpdate, } from './session.schema';
1
+ export { sessionResource, sessionTable, type SessionType, type SessionStatus, type SessionRow, type SessionInsert, type SessionUpdate, } from './session.schema';
@@ -1 +1 @@
1
- export { sessionTable, } from './session.schema.js';
1
+ export { sessionResource, sessionTable, } from './session.schema.js';
@@ -1,32 +1,50 @@
1
1
  export type SessionType = 'direct' | 'group' | 'imported-readonly';
2
2
  export type SessionStatus = 'active' | 'paused' | 'completed' | 'error' | 'archived';
3
3
  /**
4
- * Runtime / collaboration session schema.
4
+ * Runtime / collaboration session resource.
5
5
  *
6
- * This is the durable session truth layer for Pi/xpod-aligned runtime state.
6
+ * This preserves generic AI product runtime/session lifecycle state.
7
7
  * It is intentionally separate from:
8
8
  * - UI-only local state (focus, draft text, scroll position, expand/collapse)
9
9
  * - transient transport/session-manager internals
10
+ * - the durable conversation timeline, which is Thread
10
11
  *
11
12
  * Storage structure:
12
13
  * - Location: /.data/session/{id}.ttl
13
- * - Primary use: durable cross-app session state / lifecycle projection
14
+ * - Primary use: runtime lifecycle projection for a concrete Thread
14
15
  *
15
- * Contract notes for this baseline:
16
+ * Contract notes:
17
+ * - Chat identifies the counterpart/conversation object.
18
+ * - Thread identifies the concrete conversation timeline/place/run. AI product
19
+ * runtime sessions map to Thread; this Session resource records lifecycle state
20
+ * and points to that Thread.
16
21
  * - `archived` is a persistence-layer/session-lifecycle status; interactive runtime
17
22
  * surfaces may continue to use the narrower active/paused/completed/error subset
18
23
  * until they explicitly adopt archival semantics.
19
- * - `chatId` and `threadId` are intentionally stored as opaque string references for
20
- * now. This keeps the initial session baseline decoupled from any single runtime or
21
- * RDF-linking strategy while the writer/reader contract is still being designed.
22
24
  * - `tool` is intentionally open-string in this baseline so the durable table does not
23
25
  * prematurely overfit to today's sidecar enum before all writers are aligned.
24
26
  */
27
+ export declare const sessionResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
28
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
29
+ ownerWebId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
30
+ chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
31
+ thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
32
+ sessionType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
33
+ status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
34
+ tool: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
35
+ tokenUsage: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
36
+ policy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
37
+ policyVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
38
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
39
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
40
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
41
+ archivedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
42
+ }>>;
25
43
  export declare const sessionTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
26
44
  id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
27
45
  ownerWebId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
28
- chatId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
29
- threadId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
46
+ chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
47
+ thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
30
48
  sessionType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
31
49
  status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
32
50
  tool: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
@@ -38,6 +56,6 @@ export declare const sessionTable: import("@undefineds.co/drizzle-solid/dist/cor
38
56
  updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
39
57
  archivedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
40
58
  }>>;
41
- export type SessionRow = typeof sessionTable.$inferSelect;
42
- export type SessionInsert = typeof sessionTable.$inferInsert;
43
- export type SessionUpdate = typeof sessionTable.$inferUpdate;
59
+ export type SessionRow = typeof sessionResource.$inferSelect;
60
+ export type SessionInsert = typeof sessionResource.$inferInsert;
61
+ export type SessionUpdate = typeof sessionResource.$inferUpdate;