@undefineds.co/models 0.1.0
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/README.md +578 -0
- package/dist/_drizzle-solid/columns.d.ts +37 -0
- package/dist/_drizzle-solid/columns.js +1 -0
- package/dist/_drizzle-solid/pod-table.d.ts +3 -0
- package/dist/_drizzle-solid/pod-table.js +1 -0
- package/dist/_drizzle-solid/types.d.ts +40 -0
- package/dist/_drizzle-solid/types.js +1 -0
- package/dist/agent.providers.d.ts +13 -0
- package/dist/agent.providers.js +69 -0
- package/dist/agent.repository.d.ts +85 -0
- package/dist/agent.repository.js +7 -0
- package/dist/agent.schema.d.ts +1 -0
- package/dist/agent.schema.js +1 -0
- package/dist/ai-config/index.d.ts +61 -0
- package/dist/ai-config/index.js +294 -0
- package/dist/ai-config.d.ts +1 -0
- package/dist/ai-config.js +1 -0
- package/dist/ai-model.schema.d.ts +1 -0
- package/dist/ai-model.schema.js +1 -0
- package/dist/ai-provider.schema.d.ts +1 -0
- package/dist/ai-provider.schema.js +1 -0
- package/dist/approval.schema.d.ts +1 -0
- package/dist/approval.schema.js +1 -0
- package/dist/audit.schema.d.ts +1 -0
- package/dist/audit.schema.js +1 -0
- package/dist/chat.repository.d.ts +61 -0
- package/dist/chat.repository.js +8 -0
- package/dist/chat.schema.d.ts +1 -0
- package/dist/chat.schema.js +1 -0
- package/dist/chat.utils.d.ts +3 -0
- package/dist/chat.utils.js +30 -0
- package/dist/contact.repository.d.ts +85 -0
- package/dist/contact.repository.js +8 -0
- package/dist/contact.schema.d.ts +1 -0
- package/dist/contact.schema.js +1 -0
- package/dist/core/agent-provider.schema.d.ts +1 -0
- package/dist/core/agent-provider.schema.js +1 -0
- package/dist/core/agent-status.schema.d.ts +12 -0
- package/dist/core/agent-status.schema.js +18 -0
- package/dist/core/agent.schema.d.ts +72 -0
- package/dist/core/agent.schema.js +38 -0
- package/dist/core/ai-config.schema.d.ts +11 -0
- package/dist/core/ai-config.schema.js +18 -0
- package/dist/core/ai-model.schema.d.ts +15 -0
- package/dist/core/ai-model.schema.js +21 -0
- package/dist/core/ai-provider.schema.d.ts +16 -0
- package/dist/core/ai-provider.schema.js +28 -0
- package/dist/core/approval.schema.d.ts +21 -0
- package/dist/core/approval.schema.js +33 -0
- package/dist/core/audit.schema.d.ts +17 -0
- package/dist/core/audit.schema.js +29 -0
- package/dist/core/chat.schema.d.ts +36 -0
- package/dist/core/chat.schema.js +45 -0
- package/dist/core/contact.schema.d.ts +47 -0
- package/dist/core/contact.schema.js +59 -0
- package/dist/core/credential.schema.d.ts +56 -0
- package/dist/core/credential.schema.js +40 -0
- package/dist/core/extension/extension.schema.d.ts +4 -0
- package/dist/core/extension/extension.schema.js +11 -0
- package/dist/core/extension/index.d.ts +1 -0
- package/dist/core/extension/index.js +1 -0
- package/dist/core/extension.d.ts +1 -0
- package/dist/core/extension.js +1 -0
- package/dist/core/favorite/favorite.schema.d.ts +24 -0
- package/dist/core/favorite/favorite.schema.js +34 -0
- package/dist/core/favorite/index.d.ts +1 -0
- package/dist/core/favorite/index.js +1 -0
- package/dist/core/file/file.schema.d.ts +39 -0
- package/dist/core/file/file.schema.js +51 -0
- package/dist/core/file/index.d.ts +1 -0
- package/dist/core/file/index.js +1 -0
- package/dist/core/file.d.ts +1 -0
- package/dist/core/file.js +1 -0
- package/dist/core/grant.schema.d.ts +16 -0
- package/dist/core/grant.schema.js +29 -0
- package/dist/core/import/import-job.schema.d.ts +5 -0
- package/dist/core/import/import-job.schema.js +5 -0
- package/dist/core/import/index.d.ts +1 -0
- package/dist/core/import/index.js +1 -0
- package/dist/core/import.d.ts +1 -0
- package/dist/core/import.js +1 -0
- package/dist/core/inbox-notification.schema.d.ts +9 -0
- package/dist/core/inbox-notification.schema.js +16 -0
- package/dist/core/index.d.ts +31 -0
- package/dist/core/index.js +32 -0
- package/dist/core/knowledge/index.d.ts +1 -0
- package/dist/core/knowledge/index.js +1 -0
- package/dist/core/knowledge/knowledge-folder.schema.d.ts +7 -0
- package/dist/core/knowledge/knowledge-folder.schema.js +6 -0
- package/dist/core/knowledge.d.ts +1 -0
- package/dist/core/knowledge.js +1 -0
- package/dist/core/message.schema.d.ts +33 -0
- package/dist/core/message.schema.js +49 -0
- package/dist/core/namespaces.d.ts +176 -0
- package/dist/core/namespaces.js +289 -0
- package/dist/core/profile.d.ts +16 -0
- package/dist/core/profile.js +19 -0
- package/dist/core/schema.d.ts +304 -0
- package/dist/core/schema.js +46 -0
- package/dist/core/session/index.d.ts +1 -0
- package/dist/core/session/index.js +1 -0
- package/dist/core/session/session.schema.d.ts +6 -0
- package/dist/core/session/session.schema.js +6 -0
- package/dist/core/session.d.ts +1 -0
- package/dist/core/session.js +1 -0
- package/dist/core/settings/index.d.ts +1 -0
- package/dist/core/settings/index.js +1 -0
- package/dist/core/settings/settings.schema.d.ts +49 -0
- package/dist/core/settings/settings.schema.js +63 -0
- package/dist/core/settings.d.ts +1 -0
- package/dist/core/settings.js +1 -0
- package/dist/core/thread.schema.d.ts +28 -0
- package/dist/core/thread.schema.js +36 -0
- package/dist/core/types/collaboration-blocks.d.ts +52 -0
- package/dist/core/types/collaboration-blocks.js +7 -0
- package/dist/core/types/message-block.d.ts +270 -0
- package/dist/core/types/message-block.js +125 -0
- package/dist/core/vector-store.schema.d.ts +25 -0
- package/dist/core/vector-store.schema.js +35 -0
- package/dist/core/vocab/_namespaces.d.ts +1 -0
- package/dist/core/vocab/_namespaces.js +3 -0
- package/dist/core/vocab/chat.vocab.d.ts +16 -0
- package/dist/core/vocab/chat.vocab.js +22 -0
- package/dist/core/vocab/contact.vocab.d.ts +21 -0
- package/dist/core/vocab/contact.vocab.js +22 -0
- package/dist/core/vocab/index.d.ts +6 -0
- package/dist/core/vocab/index.js +6 -0
- package/dist/core/vocab/message.vocab.d.ts +20 -0
- package/dist/core/vocab/message.vocab.js +24 -0
- package/dist/core/vocab/sidecar.vocab.d.ts +46 -0
- package/dist/core/vocab/sidecar.vocab.js +47 -0
- package/dist/core/vocab/thread.vocab.d.ts +11 -0
- package/dist/core/vocab/thread.vocab.js +14 -0
- package/dist/core/vocab/workspace.vocab.d.ts +12 -0
- package/dist/core/vocab/workspace.vocab.js +13 -0
- package/dist/core/vocab.d.ts +1 -0
- package/dist/core/vocab.js +1 -0
- package/dist/core/workspace.schema.d.ts +35 -0
- package/dist/core/workspace.schema.js +106 -0
- package/dist/core.d.ts +1 -0
- package/dist/core.js +1 -0
- package/dist/credential.schema.d.ts +1 -0
- package/dist/credential.schema.js +1 -0
- package/dist/discovery/index.d.ts +31 -0
- package/dist/discovery/index.js +147 -0
- package/dist/discovery/models.json +2623 -0
- package/dist/discovery/providers.json +156 -0
- package/dist/discovery/types.d.ts +103 -0
- package/dist/discovery/types.js +12 -0
- package/dist/discovery/vercel.d.ts +25 -0
- package/dist/discovery/vercel.js +95 -0
- package/dist/discovery.d.ts +1 -0
- package/dist/discovery.js +1 -0
- package/dist/extension/extension.schema.d.ts +1 -0
- package/dist/extension/extension.schema.js +1 -0
- package/dist/extension/index.d.ts +1 -0
- package/dist/extension/index.js +1 -0
- package/dist/extension.d.ts +1 -0
- package/dist/extension.js +1 -0
- package/dist/favorite/favorite.schema.d.ts +1 -0
- package/dist/favorite/favorite.schema.js +1 -0
- package/dist/favorite/index.d.ts +2 -0
- package/dist/favorite/index.js +7 -0
- package/dist/favorite/starred-sync.d.ts +66 -0
- package/dist/favorite/starred-sync.js +156 -0
- package/dist/favorite.d.ts +1 -0
- package/dist/favorite.js +1 -0
- package/dist/file/file.schema.d.ts +1 -0
- package/dist/file/file.schema.js +1 -0
- package/dist/file/index.d.ts +1 -0
- package/dist/file/index.js +1 -0
- package/dist/file.d.ts +1 -0
- package/dist/file.js +1 -0
- package/dist/fixtures/contracts-chat-contact.d.ts +13 -0
- package/dist/fixtures/contracts-chat-contact.js +76 -0
- package/dist/grant.schema.d.ts +1 -0
- package/dist/grant.schema.js +1 -0
- package/dist/import/import-job.schema.d.ts +5 -0
- package/dist/import/import-job.schema.js +5 -0
- package/dist/import/index.d.ts +1 -0
- package/dist/import/index.js +1 -0
- package/dist/import.d.ts +1 -0
- package/dist/import.js +1 -0
- package/dist/inbox-notification.schema.d.ts +1 -0
- package/dist/inbox-notification.schema.js +1 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.js +83 -0
- package/dist/knowledge/index.d.ts +1 -0
- package/dist/knowledge/index.js +1 -0
- package/dist/knowledge/knowledge-folder.schema.d.ts +1 -0
- package/dist/knowledge/knowledge-folder.schema.js +1 -0
- package/dist/knowledge.d.ts +1 -0
- package/dist/knowledge.js +1 -0
- package/dist/message.repository.d.ts +81 -0
- package/dist/message.repository.js +8 -0
- package/dist/message.schema.d.ts +1 -0
- package/dist/message.schema.js +1 -0
- package/dist/namespaces.d.ts +1 -0
- package/dist/namespaces.js +1 -0
- package/dist/profile.d.ts +1 -0
- package/dist/profile.js +1 -0
- package/dist/repository.d.ts +59 -0
- package/dist/repository.js +186 -0
- package/dist/schema.d.ts +1 -0
- package/dist/schema.js +1 -0
- package/dist/session/index.d.ts +1 -0
- package/dist/session/index.js +1 -0
- package/dist/session/session.schema.d.ts +1 -0
- package/dist/session/session.schema.js +1 -0
- package/dist/session.d.ts +1 -0
- package/dist/session.js +1 -0
- package/dist/settings/index.d.ts +1 -0
- package/dist/settings/index.js +1 -0
- package/dist/settings/settings.schema.d.ts +1 -0
- package/dist/settings/settings.schema.js +1 -0
- package/dist/settings.d.ts +1 -0
- package/dist/settings.js +1 -0
- package/dist/sidecar/index.d.ts +2 -0
- package/dist/sidecar/index.js +2 -0
- package/dist/sidecar/persistence-mapping.d.ts +51 -0
- package/dist/sidecar/persistence-mapping.js +44 -0
- package/dist/sidecar/sidecar-events.d.ts +632 -0
- package/dist/sidecar/sidecar-events.js +133 -0
- package/dist/thread.repository.d.ts +41 -0
- package/dist/thread.repository.js +8 -0
- package/dist/thread.schema.d.ts +1 -0
- package/dist/thread.schema.js +1 -0
- package/dist/types/collaboration-blocks.d.ts +52 -0
- package/dist/types/collaboration-blocks.js +7 -0
- package/dist/types/message-block.d.ts +270 -0
- package/dist/types/message-block.js +125 -0
- package/dist/vocab/_namespaces.d.ts +1 -0
- package/dist/vocab/_namespaces.js +3 -0
- package/dist/vocab/chat.vocab.d.ts +16 -0
- package/dist/vocab/chat.vocab.js +22 -0
- package/dist/vocab/contact.vocab.d.ts +21 -0
- package/dist/vocab/contact.vocab.js +22 -0
- package/dist/vocab/index.d.ts +6 -0
- package/dist/vocab/index.js +6 -0
- package/dist/vocab/message.vocab.d.ts +20 -0
- package/dist/vocab/message.vocab.js +24 -0
- package/dist/vocab/sidecar.vocab.d.ts +46 -0
- package/dist/vocab/sidecar.vocab.js +47 -0
- package/dist/vocab/thread.vocab.d.ts +11 -0
- package/dist/vocab/thread.vocab.js +14 -0
- package/dist/vocab/workspace.vocab.d.ts +12 -0
- package/dist/vocab/workspace.vocab.js +13 -0
- package/dist/vocab.d.ts +1 -0
- package/dist/vocab.js +1 -0
- package/dist/workspace.repository.d.ts +45 -0
- package/dist/workspace.repository.js +8 -0
- package/dist/workspace.schema.d.ts +1 -0
- package/dist/workspace.schema.js +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export const resolveRowId = (row) => {
|
|
2
|
+
if (!row)
|
|
3
|
+
return null;
|
|
4
|
+
const record = row;
|
|
5
|
+
const candidate = record['@id'] ??
|
|
6
|
+
record.subject ??
|
|
7
|
+
record.id;
|
|
8
|
+
if (typeof candidate === 'string' && candidate.length > 0) {
|
|
9
|
+
return candidate;
|
|
10
|
+
}
|
|
11
|
+
return null;
|
|
12
|
+
};
|
|
13
|
+
export const ensureRowId = (row, fallback) => {
|
|
14
|
+
const resolved = resolveRowId(row) ?? fallback;
|
|
15
|
+
if (!resolved) {
|
|
16
|
+
throw new Error('Record is missing an identifier');
|
|
17
|
+
}
|
|
18
|
+
return resolved;
|
|
19
|
+
};
|
|
20
|
+
export const toTimestamp = (value, fallback = 0) => {
|
|
21
|
+
if (value instanceof Date)
|
|
22
|
+
return value.getTime();
|
|
23
|
+
if (typeof value === 'string') {
|
|
24
|
+
const ms = new Date(value).getTime();
|
|
25
|
+
return Number.isNaN(ms) ? fallback : ms;
|
|
26
|
+
}
|
|
27
|
+
if (typeof value === 'number')
|
|
28
|
+
return value;
|
|
29
|
+
return fallback;
|
|
30
|
+
};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export declare const contactRepository: import("./repository.js").PodRepositoryDescriptor<import("@undefineds.co/models/_drizzle-solid/pod-table").PodTableWithColumns<import("@undefineds.co/models/_drizzle-solid/types").ResolvedColumns<{
|
|
2
|
+
id: import("@undefineds.co/models/_drizzle-solid/columns").PodStringColumn<false, false>;
|
|
3
|
+
name: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, true, false>;
|
|
4
|
+
avatarUrl: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
5
|
+
entityUri: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, true, false>;
|
|
6
|
+
rdfType: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, true, true>;
|
|
7
|
+
contactType: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, true, false>;
|
|
8
|
+
isPublic: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"boolean", null, false, true>;
|
|
9
|
+
externalPlatform: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
10
|
+
externalId: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
11
|
+
alias: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
12
|
+
starred: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"boolean", null, false, true>;
|
|
13
|
+
note: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
14
|
+
sortKey: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
15
|
+
gender: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
16
|
+
province: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
17
|
+
city: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
18
|
+
createdAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, true, true>;
|
|
19
|
+
updatedAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, true, true>;
|
|
20
|
+
deletedAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, false, false>;
|
|
21
|
+
lastSyncedAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, false, false>;
|
|
22
|
+
}>>, {
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
avatarUrl: string;
|
|
26
|
+
entityUri: string;
|
|
27
|
+
rdfType: string;
|
|
28
|
+
contactType: string;
|
|
29
|
+
isPublic: boolean;
|
|
30
|
+
externalPlatform: string;
|
|
31
|
+
externalId: string;
|
|
32
|
+
alias: string;
|
|
33
|
+
starred: boolean;
|
|
34
|
+
note: string;
|
|
35
|
+
sortKey: string;
|
|
36
|
+
gender: string;
|
|
37
|
+
province: string;
|
|
38
|
+
city: string;
|
|
39
|
+
createdAt: Date;
|
|
40
|
+
updatedAt: Date;
|
|
41
|
+
deletedAt: Date;
|
|
42
|
+
lastSyncedAt: Date;
|
|
43
|
+
}, {
|
|
44
|
+
name: string;
|
|
45
|
+
entityUri: string;
|
|
46
|
+
contactType: string;
|
|
47
|
+
id?: string | undefined;
|
|
48
|
+
avatarUrl?: string | undefined;
|
|
49
|
+
rdfType?: string | undefined;
|
|
50
|
+
isPublic?: boolean | undefined;
|
|
51
|
+
externalPlatform?: string | undefined;
|
|
52
|
+
externalId?: string | undefined;
|
|
53
|
+
alias?: string | undefined;
|
|
54
|
+
starred?: boolean | undefined;
|
|
55
|
+
note?: string | undefined;
|
|
56
|
+
sortKey?: string | undefined;
|
|
57
|
+
gender?: string | undefined;
|
|
58
|
+
province?: string | undefined;
|
|
59
|
+
city?: string | undefined;
|
|
60
|
+
createdAt?: Date | undefined;
|
|
61
|
+
updatedAt?: Date | undefined;
|
|
62
|
+
deletedAt?: Date | undefined;
|
|
63
|
+
lastSyncedAt?: Date | undefined;
|
|
64
|
+
}, {
|
|
65
|
+
id?: string | null | undefined;
|
|
66
|
+
name?: string | undefined;
|
|
67
|
+
avatarUrl?: string | null | undefined;
|
|
68
|
+
entityUri?: string | undefined;
|
|
69
|
+
rdfType?: string | undefined;
|
|
70
|
+
contactType?: string | undefined;
|
|
71
|
+
isPublic?: boolean | null | undefined;
|
|
72
|
+
externalPlatform?: string | null | undefined;
|
|
73
|
+
externalId?: string | null | undefined;
|
|
74
|
+
alias?: string | null | undefined;
|
|
75
|
+
starred?: boolean | null | undefined;
|
|
76
|
+
note?: string | null | undefined;
|
|
77
|
+
sortKey?: string | null | undefined;
|
|
78
|
+
gender?: string | null | undefined;
|
|
79
|
+
province?: string | null | undefined;
|
|
80
|
+
city?: string | null | undefined;
|
|
81
|
+
createdAt?: Date | undefined;
|
|
82
|
+
updatedAt?: Date | undefined;
|
|
83
|
+
deletedAt?: Date | null | undefined;
|
|
84
|
+
lastSyncedAt?: Date | null | undefined;
|
|
85
|
+
}, Record<string, unknown>>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { definePodRepository } from './repository.js';
|
|
2
|
+
import { contactTable } from './contact.schema.js';
|
|
3
|
+
export const contactRepository = definePodRepository({
|
|
4
|
+
namespace: 'contact',
|
|
5
|
+
table: contactTable,
|
|
6
|
+
searchableFields: ['name', 'alias', 'note'],
|
|
7
|
+
defaultSort: { field: 'name', direction: 'asc' },
|
|
8
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { contactTable, ContactClass, ContactType, isAgentContact, isGroupContact, type ContactRow, type ContactInsert, type ContactUpdate, type ContactClassValue, type ContactTypeValue, } from './core.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { contactTable, ContactClass, ContactType, isAgentContact, isGroupContact, } from './core.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { aiProviderTable as agentProviderTable, aiProviderRelations as agentProviderRelations, type AIProviderRow as AgentProviderRow, type AIProviderInsert as AgentProviderInsert, type AIProviderUpdate as AgentProviderUpdate, } from './ai-provider.schema.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { aiProviderTable as agentProviderTable, aiProviderRelations as agentProviderRelations, } from './ai-provider.schema.js';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const agentStatusTable: import("@undefineds.co/models/_drizzle-solid/pod-table").PodTableWithColumns<import("@undefineds.co/models/_drizzle-solid/types").ResolvedColumns<{
|
|
2
|
+
id: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, true, false>;
|
|
3
|
+
agentId: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
4
|
+
status: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
5
|
+
startedAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, false, false>;
|
|
6
|
+
lastActivityAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, false, false>;
|
|
7
|
+
currentTaskId: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
8
|
+
errorMessage: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
9
|
+
}>>;
|
|
10
|
+
export type AgentStatusRow = typeof agentStatusTable.$inferSelect;
|
|
11
|
+
export type AgentStatusInsert = typeof agentStatusTable.$inferInsert;
|
|
12
|
+
export type AgentStatusUpdate = typeof agentStatusTable.$inferUpdate;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { solidSchema, string, timestamp } from '@undefineds.co/drizzle-solid';
|
|
2
|
+
import { UDFS } from './namespaces.js';
|
|
3
|
+
const agentStatusSchema = solidSchema({
|
|
4
|
+
id: string('id').primaryKey(),
|
|
5
|
+
agentId: string('agentId').predicate(UDFS.agentId),
|
|
6
|
+
status: string('status').predicate(UDFS.status),
|
|
7
|
+
startedAt: timestamp('startedAt').predicate(UDFS.startedAt),
|
|
8
|
+
lastActivityAt: timestamp('lastActivityAt').predicate(UDFS.lastActivityAt),
|
|
9
|
+
currentTaskId: string('currentTaskId').predicate(UDFS.currentTaskId),
|
|
10
|
+
errorMessage: string('errorMessage').predicate(UDFS.errorMessage),
|
|
11
|
+
}, {
|
|
12
|
+
type: UDFS.AgentStatus,
|
|
13
|
+
namespace: UDFS,
|
|
14
|
+
});
|
|
15
|
+
export const agentStatusTable = agentStatusSchema.table('agentStatus', {
|
|
16
|
+
base: '/settings/ai/agent-status.ttl',
|
|
17
|
+
subjectTemplate: '#{id}',
|
|
18
|
+
});
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export interface CreateAgentSchemaOptions {
|
|
2
|
+
nameRequired?: boolean;
|
|
3
|
+
}
|
|
4
|
+
export declare function createAgentSchema(options?: CreateAgentSchemaOptions): import("@undefineds.co/drizzle-solid").SolidSchema<import("@undefineds.co/models/_drizzle-solid/types").ResolvedColumns<{
|
|
5
|
+
id: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, true, false>;
|
|
6
|
+
name: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
7
|
+
description: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
8
|
+
avatarUrl: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
9
|
+
instructions: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
10
|
+
provider: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
11
|
+
runtimeKind: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
12
|
+
credential: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
13
|
+
model: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
14
|
+
enabled: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, true>;
|
|
15
|
+
temperature: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"integer", null, false, true>;
|
|
16
|
+
tools: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"array", "string", false, false>;
|
|
17
|
+
contextRound: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"integer", null, false, true>;
|
|
18
|
+
maxTurns: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"integer", null, false, false>;
|
|
19
|
+
timeout: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"integer", null, false, false>;
|
|
20
|
+
ttsModel: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
21
|
+
videoModel: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
22
|
+
createdAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, true, true>;
|
|
23
|
+
updatedAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, true, true>;
|
|
24
|
+
deletedAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, false, false>;
|
|
25
|
+
}>>;
|
|
26
|
+
export declare const agentSchema: import("@undefineds.co/drizzle-solid").SolidSchema<import("@undefineds.co/models/_drizzle-solid/types").ResolvedColumns<{
|
|
27
|
+
id: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, true, false>;
|
|
28
|
+
name: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
29
|
+
description: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
30
|
+
avatarUrl: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
31
|
+
instructions: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
32
|
+
provider: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
33
|
+
runtimeKind: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
34
|
+
credential: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
35
|
+
model: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
36
|
+
enabled: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, true>;
|
|
37
|
+
temperature: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"integer", null, false, true>;
|
|
38
|
+
tools: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"array", "string", false, false>;
|
|
39
|
+
contextRound: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"integer", null, false, true>;
|
|
40
|
+
maxTurns: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"integer", null, false, false>;
|
|
41
|
+
timeout: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"integer", null, false, false>;
|
|
42
|
+
ttsModel: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
43
|
+
videoModel: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
44
|
+
createdAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, true, true>;
|
|
45
|
+
updatedAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, true, true>;
|
|
46
|
+
deletedAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, false, false>;
|
|
47
|
+
}>>;
|
|
48
|
+
export declare const agentTable: import("@undefineds.co/models/_drizzle-solid/pod-table").PodTableWithColumns<import("@undefineds.co/models/_drizzle-solid/types").ResolvedColumns<{
|
|
49
|
+
id: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, true, false>;
|
|
50
|
+
name: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
51
|
+
description: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
52
|
+
avatarUrl: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
53
|
+
instructions: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
54
|
+
provider: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
55
|
+
runtimeKind: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
56
|
+
credential: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
57
|
+
model: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
58
|
+
enabled: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, true>;
|
|
59
|
+
temperature: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"integer", null, false, true>;
|
|
60
|
+
tools: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"array", "string", false, false>;
|
|
61
|
+
contextRound: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"integer", null, false, true>;
|
|
62
|
+
maxTurns: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"integer", null, false, false>;
|
|
63
|
+
timeout: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"integer", null, false, false>;
|
|
64
|
+
ttsModel: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
65
|
+
videoModel: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
66
|
+
createdAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, true, true>;
|
|
67
|
+
updatedAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, true, true>;
|
|
68
|
+
deletedAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, false, false>;
|
|
69
|
+
}>>;
|
|
70
|
+
export type AgentRow = typeof agentTable.$inferSelect;
|
|
71
|
+
export type AgentInsert = typeof agentTable.$inferInsert;
|
|
72
|
+
export type AgentUpdate = typeof agentTable.$inferUpdate;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { integer, real, solidSchema, string, text, timestamp, uri } from '@undefineds.co/drizzle-solid';
|
|
2
|
+
import { DCTerms, FOAF, UDFS, VCARD } from './namespaces.js';
|
|
3
|
+
import { aiModelTable } from './ai-model.schema.js';
|
|
4
|
+
import { credentialTable } from './credential.schema.js';
|
|
5
|
+
export function createAgentSchema(options = {}) {
|
|
6
|
+
const nameColumn = string('name').predicate(FOAF.name);
|
|
7
|
+
return solidSchema({
|
|
8
|
+
id: string('id').primaryKey(),
|
|
9
|
+
name: options.nameRequired === false ? nameColumn : nameColumn.notNull(),
|
|
10
|
+
description: text('description').predicate(DCTerms.description),
|
|
11
|
+
avatarUrl: uri('avatarUrl').predicate(VCARD.hasPhoto),
|
|
12
|
+
instructions: text('instructions').predicate(UDFS.systemPrompt),
|
|
13
|
+
provider: uri('provider').predicate(UDFS.provider),
|
|
14
|
+
runtimeKind: string('runtimeKind').predicate(UDFS.runtimeKind),
|
|
15
|
+
credential: uri('credential').predicate(UDFS.credential).link(credentialTable),
|
|
16
|
+
model: uri('model').predicate(UDFS.model).link(aiModelTable),
|
|
17
|
+
enabled: string('enabled').predicate(UDFS.enabled).default('true'),
|
|
18
|
+
temperature: real('temperature').predicate(UDFS.temperature).default(0.7),
|
|
19
|
+
tools: text('tools').array().predicate(UDFS.tools),
|
|
20
|
+
contextRound: integer('contextRound').predicate(UDFS.contextRound).default(4),
|
|
21
|
+
maxTurns: integer('maxTurns').predicate(UDFS.maxTurns),
|
|
22
|
+
timeout: integer('timeout').predicate(UDFS.timeout),
|
|
23
|
+
ttsModel: uri('ttsModel').predicate(UDFS.ttsModel).link(aiModelTable),
|
|
24
|
+
videoModel: uri('videoModel').predicate(UDFS.videoModel).link(aiModelTable),
|
|
25
|
+
createdAt: timestamp('createdAt').predicate(DCTerms.created).notNull().defaultNow(),
|
|
26
|
+
updatedAt: timestamp('updatedAt').predicate(DCTerms.modified).notNull().defaultNow(),
|
|
27
|
+
deletedAt: timestamp('deletedAt').predicate(UDFS.deletedAt),
|
|
28
|
+
}, {
|
|
29
|
+
type: UDFS.AgentConfig,
|
|
30
|
+
namespace: UDFS,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
export const agentSchema = createAgentSchema();
|
|
34
|
+
export const agentTable = agentSchema.table('agent', {
|
|
35
|
+
base: '/.data/agents/',
|
|
36
|
+
sparqlEndpoint: '/.data/agents/-/sparql',
|
|
37
|
+
subjectTemplate: '{id}.ttl',
|
|
38
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const aiConfigTable: import("@undefineds.co/models/_drizzle-solid/pod-table").PodTableWithColumns<import("@undefineds.co/models/_drizzle-solid/types").ResolvedColumns<{
|
|
2
|
+
id: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, true, false>;
|
|
3
|
+
embeddingModel: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
4
|
+
previousModel: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
5
|
+
migrationStatus: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
6
|
+
migrationProgress: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"integer", null, false, false>;
|
|
7
|
+
updatedAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, false, false>;
|
|
8
|
+
}>>;
|
|
9
|
+
export type AIConfigRow = typeof aiConfigTable.$inferSelect;
|
|
10
|
+
export type AIConfigInsert = typeof aiConfigTable.$inferInsert;
|
|
11
|
+
export type AIConfigUpdate = typeof aiConfigTable.$inferUpdate;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { integer, solidSchema, string, timestamp, uri } from '@undefineds.co/drizzle-solid';
|
|
2
|
+
import { aiModelTable } from './ai-model.schema.js';
|
|
3
|
+
import { UDFS } from './namespaces.js';
|
|
4
|
+
const aiConfigSchema = solidSchema({
|
|
5
|
+
id: string('id').primaryKey(),
|
|
6
|
+
embeddingModel: uri('embeddingModel').predicate(UDFS.embeddingModel).link(aiModelTable),
|
|
7
|
+
previousModel: uri('previousModel').predicate(UDFS.previousModel).link(aiModelTable),
|
|
8
|
+
migrationStatus: string('migrationStatus').predicate(UDFS.migrationStatus),
|
|
9
|
+
migrationProgress: integer('migrationProgress').predicate(UDFS.migrationProgress),
|
|
10
|
+
updatedAt: timestamp('updatedAt').predicate(UDFS.updatedAt),
|
|
11
|
+
}, {
|
|
12
|
+
type: UDFS.AIConfig,
|
|
13
|
+
namespace: UDFS,
|
|
14
|
+
});
|
|
15
|
+
export const aiConfigTable = aiConfigSchema.table('aiConfig', {
|
|
16
|
+
base: '/settings/ai/config.ttl',
|
|
17
|
+
subjectTemplate: '#{id}',
|
|
18
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const aiModelTable: import("@undefineds.co/models/_drizzle-solid/pod-table").PodTableWithColumns<import("@undefineds.co/models/_drizzle-solid/types").ResolvedColumns<{
|
|
2
|
+
id: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, true, false>;
|
|
3
|
+
displayName: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
4
|
+
modelType: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, true>;
|
|
5
|
+
isProvidedBy: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
6
|
+
dimension: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"integer", null, false, false>;
|
|
7
|
+
contextLength: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"integer", null, false, false>;
|
|
8
|
+
maxOutputTokens: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"integer", null, false, false>;
|
|
9
|
+
status: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, true>;
|
|
10
|
+
createdAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, true, true>;
|
|
11
|
+
updatedAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, true, true>;
|
|
12
|
+
}>>;
|
|
13
|
+
export type AIModelRow = typeof aiModelTable.$inferSelect;
|
|
14
|
+
export type AIModelInsert = typeof aiModelTable.$inferInsert;
|
|
15
|
+
export type AIModelUpdate = typeof aiModelTable.$inferUpdate;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { integer, solidSchema, string, timestamp, uri } from '@undefineds.co/drizzle-solid';
|
|
2
|
+
import { DCTerms, RDFS, UDFS } from './namespaces.js';
|
|
3
|
+
const aiModelSchema = solidSchema({
|
|
4
|
+
id: string('id').primaryKey(),
|
|
5
|
+
displayName: string('displayName').predicate(RDFS.label),
|
|
6
|
+
modelType: string('modelType').predicate(UDFS.modelType).default('chat'),
|
|
7
|
+
isProvidedBy: uri('isProvidedBy').predicate(UDFS.isProvidedBy),
|
|
8
|
+
dimension: integer('dimension').predicate(UDFS.dimension),
|
|
9
|
+
contextLength: integer('contextLength').predicate(UDFS.contextLength),
|
|
10
|
+
maxOutputTokens: integer('maxOutputTokens').predicate(UDFS.maxOutputTokens),
|
|
11
|
+
status: string('status').predicate(UDFS.status).default('active'),
|
|
12
|
+
createdAt: timestamp('createdAt').predicate(DCTerms.created).notNull().defaultNow(),
|
|
13
|
+
updatedAt: timestamp('updatedAt').predicate(DCTerms.modified).notNull().defaultNow(),
|
|
14
|
+
}, {
|
|
15
|
+
type: UDFS.Model,
|
|
16
|
+
namespace: UDFS,
|
|
17
|
+
});
|
|
18
|
+
export const aiModelTable = aiModelSchema.table('aiModel', {
|
|
19
|
+
base: '/settings/ai/models.ttl',
|
|
20
|
+
subjectTemplate: '#{id}',
|
|
21
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const aiProviderTable: import("@undefineds.co/models/_drizzle-solid/pod-table").PodTableWithColumns<import("@undefineds.co/models/_drizzle-solid/types").ResolvedColumns<{
|
|
2
|
+
id: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, true, false>;
|
|
3
|
+
displayName: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
4
|
+
baseUrl: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
5
|
+
proxyUrl: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
6
|
+
projectId: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
7
|
+
organizationId: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
8
|
+
hasModel: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
9
|
+
defaultModel: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
10
|
+
hasCredential: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
11
|
+
enabled: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, true>;
|
|
12
|
+
}>>;
|
|
13
|
+
export declare const aiProviderRelations: Record<string, import("@undefineds.co/drizzle-solid").RelationDefinition>;
|
|
14
|
+
export type AIProviderRow = typeof aiProviderTable.$inferSelect;
|
|
15
|
+
export type AIProviderInsert = typeof aiProviderTable.$inferInsert;
|
|
16
|
+
export type AIProviderUpdate = typeof aiProviderTable.$inferUpdate;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { relations, solidSchema, string, uri } from '@undefineds.co/drizzle-solid';
|
|
2
|
+
import { aiModelTable } from './ai-model.schema.js';
|
|
3
|
+
import { RDFS, UDFS } from './namespaces.js';
|
|
4
|
+
const aiProviderSchema = solidSchema({
|
|
5
|
+
id: string('id').primaryKey(),
|
|
6
|
+
displayName: string('displayName').predicate(RDFS.label),
|
|
7
|
+
baseUrl: string('baseUrl').predicate(UDFS.baseUrl),
|
|
8
|
+
proxyUrl: string('proxyUrl').predicate(UDFS.proxyUrl),
|
|
9
|
+
projectId: string('projectId').predicate(UDFS.projectId),
|
|
10
|
+
organizationId: string('organizationId').predicate(UDFS.organizationId),
|
|
11
|
+
hasModel: uri('hasModel').predicate(UDFS.hasModel),
|
|
12
|
+
defaultModel: uri('defaultModel').predicate(UDFS.defaultModel).link(aiModelTable),
|
|
13
|
+
hasCredential: uri('hasCredential').predicate(UDFS.hasCredential),
|
|
14
|
+
enabled: string('enabled').predicate(UDFS.enabled).default('true'),
|
|
15
|
+
}, {
|
|
16
|
+
type: UDFS.Provider,
|
|
17
|
+
namespace: UDFS,
|
|
18
|
+
});
|
|
19
|
+
export const aiProviderTable = aiProviderSchema.table('aiProvider', {
|
|
20
|
+
base: '/settings/ai/providers.ttl',
|
|
21
|
+
subjectTemplate: '#{id}',
|
|
22
|
+
});
|
|
23
|
+
export const aiProviderRelations = relations(aiProviderTable, ({ one }) => ({
|
|
24
|
+
model: one(aiModelTable, {
|
|
25
|
+
fields: [aiProviderTable.defaultModel],
|
|
26
|
+
references: [aiModelTable.id],
|
|
27
|
+
}),
|
|
28
|
+
}));
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare const approvalTable: import("@undefineds.co/models/_drizzle-solid/pod-table").PodTableWithColumns<import("@undefineds.co/models/_drizzle-solid/types").ResolvedColumns<{
|
|
2
|
+
id: import("@undefineds.co/models/_drizzle-solid/columns").PodStringColumn<false, false>;
|
|
3
|
+
session: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, true, false>;
|
|
4
|
+
toolCallId: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, true, false>;
|
|
5
|
+
toolName: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, true, false>;
|
|
6
|
+
target: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, true, false>;
|
|
7
|
+
action: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, true, false>;
|
|
8
|
+
risk: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, true, false>;
|
|
9
|
+
status: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, true, true>;
|
|
10
|
+
assignedTo: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
11
|
+
decisionBy: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
12
|
+
decisionRole: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
13
|
+
onBehalfOf: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
14
|
+
reason: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
15
|
+
policyVersion: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
16
|
+
createdAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, true, true>;
|
|
17
|
+
resolvedAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, false, false>;
|
|
18
|
+
}>>;
|
|
19
|
+
export type ApprovalRow = typeof approvalTable.$inferSelect;
|
|
20
|
+
export type ApprovalInsert = typeof approvalTable.$inferInsert;
|
|
21
|
+
export type ApprovalUpdate = typeof approvalTable.$inferUpdate;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { podTable, uri, string, text, timestamp, id } from '@undefineds.co/drizzle-solid';
|
|
2
|
+
import { ODRL, UDFS, DCTerms } from './namespaces.js';
|
|
3
|
+
// Approval request domain store (separate from Solid inbox notifications)
|
|
4
|
+
export const approvalTable = podTable('approval', {
|
|
5
|
+
id: id('id'),
|
|
6
|
+
// Relations
|
|
7
|
+
session: uri('session').predicate(UDFS.session).notNull(),
|
|
8
|
+
toolCallId: string('toolCallId').predicate(UDFS.toolCallId).notNull(),
|
|
9
|
+
// Request details
|
|
10
|
+
toolName: string('toolName').predicate(UDFS.toolName).notNull(),
|
|
11
|
+
// Standard-ish policy surface for action on target (derived by the bridge).
|
|
12
|
+
// NOTE: These MUST be Pod URIs / vocab URIs, not runtime-local identifiers.
|
|
13
|
+
target: uri('target').predicate(ODRL.target).notNull(),
|
|
14
|
+
action: uri('action').predicate(ODRL.action).notNull(),
|
|
15
|
+
risk: string('risk').predicate(UDFS.risk).notNull(),
|
|
16
|
+
status: string('status').predicate(UDFS.status).notNull().default('pending'),
|
|
17
|
+
// Decision identity (WebID semantics)
|
|
18
|
+
assignedTo: uri('assignedTo').predicate(UDFS.assignedTo),
|
|
19
|
+
decisionBy: uri('decisionBy').predicate(UDFS.decisionBy),
|
|
20
|
+
decisionRole: string('decisionRole').predicate(UDFS.decisionRole),
|
|
21
|
+
onBehalfOf: uri('onBehalfOf').predicate(UDFS.onBehalfOf),
|
|
22
|
+
reason: text('reason').predicate(UDFS.reason),
|
|
23
|
+
policyVersion: string('policyVersion').predicate(UDFS.policyVersion),
|
|
24
|
+
// Timestamps
|
|
25
|
+
createdAt: timestamp('createdAt').predicate(DCTerms.created).notNull().defaultNow(),
|
|
26
|
+
resolvedAt: timestamp('resolvedAt').predicate(UDFS.resolvedAt),
|
|
27
|
+
}, {
|
|
28
|
+
base: '/.data/approvals/',
|
|
29
|
+
sparqlEndpoint: '/.data/approvals/-/sparql',
|
|
30
|
+
type: UDFS.ApprovalRequest,
|
|
31
|
+
namespace: UDFS,
|
|
32
|
+
subjectTemplate: '{id}.ttl',
|
|
33
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const auditTable: import("@undefineds.co/models/_drizzle-solid/pod-table").PodTableWithColumns<import("@undefineds.co/models/_drizzle-solid/types").ResolvedColumns<{
|
|
2
|
+
id: import("@undefineds.co/models/_drizzle-solid/columns").PodStringColumn<false, false>;
|
|
3
|
+
action: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, true, false>;
|
|
4
|
+
actor: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, true, false>;
|
|
5
|
+
actorRole: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, true, false>;
|
|
6
|
+
onBehalfOf: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
7
|
+
session: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
8
|
+
toolCallId: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
9
|
+
approval: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
10
|
+
context: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
11
|
+
policy: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
12
|
+
policyVersion: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
13
|
+
createdAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, true, true>;
|
|
14
|
+
}>>;
|
|
15
|
+
export type AuditRow = typeof auditTable.$inferSelect;
|
|
16
|
+
export type AuditInsert = typeof auditTable.$inferInsert;
|
|
17
|
+
export type AuditUpdate = typeof auditTable.$inferUpdate;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { podTable, uri, string, text, timestamp, id } from '@undefineds.co/drizzle-solid';
|
|
2
|
+
import { UDFS, DCTerms } from './namespaces.js';
|
|
3
|
+
// Append-only audit log (separate from Solid inbox notifications)
|
|
4
|
+
export const auditTable = podTable('audit', {
|
|
5
|
+
id: id('id'),
|
|
6
|
+
// Audit action
|
|
7
|
+
action: string('action').predicate(UDFS.action).notNull(),
|
|
8
|
+
// Actor identity (WebID semantics)
|
|
9
|
+
actor: uri('actor').predicate(UDFS.actor).notNull(),
|
|
10
|
+
actorRole: string('actorRole').predicate(UDFS.actorRole).notNull(),
|
|
11
|
+
onBehalfOf: uri('onBehalfOf').predicate(UDFS.onBehalfOf),
|
|
12
|
+
// Relations
|
|
13
|
+
session: uri('session').predicate(UDFS.session),
|
|
14
|
+
toolCallId: string('toolCallId').predicate(UDFS.toolCallId),
|
|
15
|
+
approval: uri('approval').predicate(UDFS.approval),
|
|
16
|
+
// JSON payload with policy/reasoning snapshot
|
|
17
|
+
context: text('context').predicate(UDFS.context),
|
|
18
|
+
// Policy metadata
|
|
19
|
+
policy: uri('policy').predicate(UDFS.policy),
|
|
20
|
+
policyVersion: string('policyVersion').predicate(UDFS.policyVersion),
|
|
21
|
+
// Timestamps
|
|
22
|
+
createdAt: timestamp('createdAt').predicate(DCTerms.created).notNull().defaultNow(),
|
|
23
|
+
}, {
|
|
24
|
+
base: '/.data/audit/',
|
|
25
|
+
sparqlEndpoint: '/.data/audit/-/sparql',
|
|
26
|
+
type: UDFS.AuditEntry,
|
|
27
|
+
namespace: UDFS,
|
|
28
|
+
subjectTemplate: '{id}.ttl',
|
|
29
|
+
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export type ChatMemberRole = 'owner' | 'admin' | 'member';
|
|
2
|
+
export interface ChatMetadata {
|
|
3
|
+
memberRoles?: Record<string, ChatMemberRole>;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Chat schema (channel/place).
|
|
7
|
+
*
|
|
8
|
+
* CP0 baseline (alignment):
|
|
9
|
+
* - Chat is a container for messages/widgets regardless of counterpart type.
|
|
10
|
+
* - Do not encode counterpart-specific behavior in Chat (no chatType/subtype).
|
|
11
|
+
* - Participants use Solid chat-aligned flow vocabulary (wf/flow).
|
|
12
|
+
*
|
|
13
|
+
* Storage structure (aligned with xpod):
|
|
14
|
+
* - Chat metadata stored as #this in index.ttl
|
|
15
|
+
* - Location: /.data/chat/{id}/index.ttl#this
|
|
16
|
+
* - Threads stored as fragments in same file: /.data/chat/{id}/index.ttl#{threadId}
|
|
17
|
+
*/
|
|
18
|
+
export declare const chatTable: import("@undefineds.co/models/_drizzle-solid/pod-table").PodTableWithColumns<import("@undefineds.co/models/_drizzle-solid/types").ResolvedColumns<{
|
|
19
|
+
id: import("@undefineds.co/models/_drizzle-solid/columns").PodStringColumn<false, false>;
|
|
20
|
+
title: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, true, false>;
|
|
21
|
+
description: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
22
|
+
avatarUrl: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
23
|
+
starred: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"boolean", null, false, true>;
|
|
24
|
+
muted: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"boolean", null, false, true>;
|
|
25
|
+
unreadCount: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"integer", null, false, true>;
|
|
26
|
+
participants: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"array", "uri", false, false>;
|
|
27
|
+
metadata: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"object", null, false, false>;
|
|
28
|
+
lastActiveAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, false, false>;
|
|
29
|
+
lastMessageId: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"uri", null, false, false>;
|
|
30
|
+
lastMessagePreview: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"string", null, false, false>;
|
|
31
|
+
createdAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, true, true>;
|
|
32
|
+
updatedAt: import("@undefineds.co/models/_drizzle-solid/columns").ColumnBuilder<"datetime", null, true, true>;
|
|
33
|
+
}>>;
|
|
34
|
+
export type ChatRow = typeof chatTable.$inferSelect;
|
|
35
|
+
export type ChatInsert = typeof chatTable.$inferInsert;
|
|
36
|
+
export type ChatUpdate = typeof chatTable.$inferUpdate;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { boolean, object, podTable, string, text, timestamp, uri, id, integer } from '@undefineds.co/drizzle-solid';
|
|
2
|
+
import { UDFS, DCTerms, SCHEMA, MEETING, WF } from './namespaces.js';
|
|
3
|
+
/**
|
|
4
|
+
* Chat schema (channel/place).
|
|
5
|
+
*
|
|
6
|
+
* CP0 baseline (alignment):
|
|
7
|
+
* - Chat is a container for messages/widgets regardless of counterpart type.
|
|
8
|
+
* - Do not encode counterpart-specific behavior in Chat (no chatType/subtype).
|
|
9
|
+
* - Participants use Solid chat-aligned flow vocabulary (wf/flow).
|
|
10
|
+
*
|
|
11
|
+
* Storage structure (aligned with xpod):
|
|
12
|
+
* - Chat metadata stored as #this in index.ttl
|
|
13
|
+
* - Location: /.data/chat/{id}/index.ttl#this
|
|
14
|
+
* - Threads stored as fragments in same file: /.data/chat/{id}/index.ttl#{threadId}
|
|
15
|
+
*/
|
|
16
|
+
export const chatTable = podTable('chats', {
|
|
17
|
+
id: id('id'),
|
|
18
|
+
// Display
|
|
19
|
+
title: string('title').predicate(DCTerms.title).notNull(),
|
|
20
|
+
description: string('description').predicate(DCTerms.description),
|
|
21
|
+
avatarUrl: uri('avatarUrl').predicate(SCHEMA.image),
|
|
22
|
+
// Chat state
|
|
23
|
+
starred: boolean('starred').predicate(UDFS.favorite).default(false),
|
|
24
|
+
muted: boolean('muted').predicate(UDFS.muted).default(false),
|
|
25
|
+
unreadCount: integer('unreadCount').predicate(UDFS.unreadCount).default(0),
|
|
26
|
+
// Explicit membership for group chats.
|
|
27
|
+
participants: uri('participants')
|
|
28
|
+
.array()
|
|
29
|
+
.predicate(WF.participant),
|
|
30
|
+
// Structured chat metadata.
|
|
31
|
+
metadata: object('metadata').predicate(UDFS.metadata),
|
|
32
|
+
// Last activity
|
|
33
|
+
lastActiveAt: timestamp('lastActiveAt').predicate(UDFS.lastActiveAt),
|
|
34
|
+
lastMessageId: uri('lastMessageId').predicate(WF.message),
|
|
35
|
+
lastMessagePreview: text('lastMessagePreview').predicate(SCHEMA.text),
|
|
36
|
+
// Timestamps
|
|
37
|
+
createdAt: timestamp('createdAt').predicate(DCTerms.created).notNull().defaultNow(),
|
|
38
|
+
updatedAt: timestamp('updatedAt').predicate(DCTerms.modified).notNull().defaultNow(),
|
|
39
|
+
}, {
|
|
40
|
+
base: '/.data/chat/',
|
|
41
|
+
sparqlEndpoint: '/.data/chat/-/sparql',
|
|
42
|
+
type: MEETING.LongChat,
|
|
43
|
+
namespace: UDFS,
|
|
44
|
+
subjectTemplate: '{id}/index.ttl#this',
|
|
45
|
+
});
|