@undefineds.co/models 0.2.26 → 0.2.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -19,13 +19,16 @@ export * from './profile.schema.js';
19
19
  export { ContactGender, contactResource, contactTable, ContactClass, ContactType, isAgentContact, isGroupContact, normalizeContactGender, } from './contact.schema.js';
20
20
  export { contactRepository } from './contact.repository.js';
21
21
  // Chat & Message - 聊天和消息
22
- export { chatResource, chatTable, } from './chat.schema.js';
22
+ export { ChatStatus, chatResource, chatTable, } from './chat.schema.js';
23
23
  export { chatRepository } from './chat.repository.js';
24
24
  export { extractChatIdFromChatRef, extractChatThreadRef, extractThreadIdFromThreadRef, resolveThreadChatId, toTimestamp, } from './chat.utils.js';
25
- export { threadResource, threadTable, } from './thread.schema.js';
25
+ export { ThreadStatus, threadResource, threadTable, } from './thread.schema.js';
26
26
  export { threadRepository } from './thread.repository.js';
27
- export { messageResource, messageTable, } from './message.schema.js';
27
+ export { MessageRole, MessageStatus, messageResource, messageTable, } from './message.schema.js';
28
28
  export { messageRepository } from './message.repository.js';
29
+ export { TaskStatus, TaskTriggerKind, taskResource, taskTable, } from './task.schema.js';
30
+ export { RunStatus, RunStepType, runResource, runStepResource, runTable, runStepTable, } from './run.schema.js';
31
+ export { chatResourceId, commandKindFromResourceId, dateParts, messageResourceId, parentDir, resourceKey, runResourceId, runStepResourceId, surfaceIdFromCommandResourceId, taskResourceId, threadResourceId, } from './resource-id-defaults.js';
29
32
  // Issue - user-facing work item that can be inspected through chat/thread
30
33
  export { issueResource, issueTable, } from './issue.schema.js';
31
34
  export { issueRepository } from './issue.repository.js';
@@ -72,6 +75,7 @@ export { aiModelResource, aiModelTable, } from "./ai-model.schema.js";
72
75
  export { agentStatusResource, agentStatusTable, aiConfigResource, aiConfigTable, indexedFileResource, indexedFileTable, vectorStoreResource, vectorStoreTable, } from './ai-runtime.schema.js';
73
76
  export { aiConfigModelRef, aiConfigModelUri, aiConfigProviderRef, aiConfigProviderUri, buildAIConfigDisconnectPlan, buildAIConfigMutationPlan, buildAIConfigProviderStateMap, getAIConfigDefaultBaseUrl, getAIConfigProviderCatalog, getAIConfigProviderFamilyIds, getAIConfigProviderMetadata, getDefaultAIConfigCredentialId, normalizeAIConfigProviderId, normalizeAIConfigModelId, normalizeAIConfigResourceId, sameAIConfigProviderFamily, selectAIConfigCredential, } from './ai-config/index.js';
74
77
  export { applySolidComunicaPatches, } from './comunica-patches.js';
78
+ export { credentialDescriptor, createPodModelDescriptorRegistry, createPodSchema, createPodStorage, officialPodModelDescriptors, podSchema, } from './pod-storage-descriptor.js';
75
79
  export { createRepositoryDescriptor, definePodRepository, initSolidResources, initSolidTables, } from './repository.js';
76
80
  // Import Job - 导入任务
77
81
  export { importJobSchema } from './import/index.js';
@@ -1,12 +1,17 @@
1
1
  export declare const messageRepository: import("@undefineds.co/drizzle-solid/dist/core/repository").PodRepositoryDescriptor<import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
2
2
  id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
3
- chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
4
- thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
5
- maker: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
3
+ commandKind: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
4
+ surfaceId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
5
+ chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
6
+ thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
7
+ maker: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
6
8
  role: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
7
9
  content: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
8
10
  richContent: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
9
11
  status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
12
+ toolName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
13
+ toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
14
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
10
15
  replacedBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
11
16
  deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
12
17
  senderName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
@@ -20,6 +25,8 @@ export declare const messageRepository: import("@undefineds.co/drizzle-solid/dis
20
25
  updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
21
26
  }>>, {
22
27
  id: string;
28
+ commandKind: string;
29
+ surfaceId: string;
23
30
  chat: string;
24
31
  thread: string;
25
32
  maker: string;
@@ -27,6 +34,9 @@ export declare const messageRepository: import("@undefineds.co/drizzle-solid/dis
27
34
  content: string;
28
35
  richContent: string;
29
36
  status: string;
37
+ toolName: string;
38
+ toolCallId: string;
39
+ metadata: Record<string, unknown>;
30
40
  replacedBy: string;
31
41
  deletedAt: Date;
32
42
  senderName: string;
@@ -39,14 +49,19 @@ export declare const messageRepository: import("@undefineds.co/drizzle-solid/dis
39
49
  createdAt: Date;
40
50
  updatedAt: Date;
41
51
  }, {
42
- chat: string;
43
- thread: string;
44
- maker: string;
45
52
  content: string;
46
53
  id?: string | undefined;
54
+ commandKind?: string | undefined;
55
+ surfaceId?: string | undefined;
56
+ chat?: string | undefined;
57
+ thread?: string | undefined;
58
+ maker?: string | undefined;
47
59
  role?: string | undefined;
48
60
  richContent?: string | undefined;
49
61
  status?: string | undefined;
62
+ toolName?: string | undefined;
63
+ toolCallId?: string | undefined;
64
+ metadata?: Record<string, unknown> | undefined;
50
65
  replacedBy?: string | undefined;
51
66
  deletedAt?: Date | undefined;
52
67
  senderName?: string | undefined;
@@ -60,13 +75,18 @@ export declare const messageRepository: import("@undefineds.co/drizzle-solid/dis
60
75
  updatedAt?: Date | undefined;
61
76
  }, {
62
77
  id?: string | null | undefined;
63
- chat?: string | undefined;
64
- thread?: string | undefined;
65
- maker?: string | undefined;
78
+ commandKind?: string | undefined;
79
+ surfaceId?: string | undefined;
80
+ chat?: string | null | undefined;
81
+ thread?: string | null | undefined;
82
+ maker?: string | null | undefined;
66
83
  role?: string | undefined;
67
84
  content?: string | undefined;
68
85
  richContent?: string | null | undefined;
69
86
  status?: string | undefined;
87
+ toolName?: string | null | undefined;
88
+ toolCallId?: string | null | undefined;
89
+ metadata?: Record<string, unknown> | null | undefined;
70
90
  replacedBy?: string | null | undefined;
71
91
  deletedAt?: Date | null | undefined;
72
92
  senderName?: string | null | undefined;
@@ -1,3 +1,16 @@
1
+ export type MessageRoleType = 'user' | 'assistant' | 'system';
2
+ export type MessageStatusType = 'in_progress' | 'completed' | 'incomplete' | 'sent';
3
+ export declare const MessageRole: {
4
+ readonly USER: "user";
5
+ readonly ASSISTANT: "assistant";
6
+ readonly SYSTEM: "system";
7
+ };
8
+ export declare const MessageStatus: {
9
+ readonly IN_PROGRESS: "in_progress";
10
+ readonly COMPLETED: "completed";
11
+ readonly INCOMPLETE: "incomplete";
12
+ readonly SENT: "sent";
13
+ };
1
14
  /**
2
15
  * Message resource (aligned with xpod).
3
16
  *
@@ -13,13 +26,18 @@
13
26
  */
14
27
  export declare const messageResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
15
28
  id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
16
- chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
17
- thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
18
- maker: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
29
+ commandKind: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
30
+ surfaceId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
31
+ chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
32
+ thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
33
+ maker: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
19
34
  role: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
20
35
  content: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
21
36
  richContent: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
22
37
  status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
38
+ toolName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
39
+ toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
40
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
23
41
  replacedBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
24
42
  deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
25
43
  senderName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
@@ -34,13 +52,18 @@ export declare const messageResource: import("@undefineds.co/drizzle-solid/dist/
34
52
  }>>;
35
53
  export declare const messageTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
36
54
  id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
37
- chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
38
- thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
39
- maker: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
55
+ commandKind: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
56
+ surfaceId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
57
+ chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
58
+ thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
59
+ maker: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
40
60
  role: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
41
61
  content: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
42
62
  richContent: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
43
63
  status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
64
+ toolName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
65
+ toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
66
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
44
67
  replacedBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
45
68
  deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
46
69
  senderName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
@@ -1,7 +1,19 @@
1
- import { podTable, uri, string, text, timestamp, id } from '@undefineds.co/drizzle-solid';
1
+ import { object, podTable, uri, string, text, timestamp, id } from '@undefineds.co/drizzle-solid';
2
2
  import { UDFS, DCTerms, FOAF, MEETING, SCHEMA, SIOC, WF } from './namespaces.js';
3
3
  import { chatResource } from './chat.schema.js';
4
4
  import { threadResource } from './thread.schema.js';
5
+ import { messageResourceId } from './resource-id-defaults.js';
6
+ export const MessageRole = {
7
+ USER: 'user',
8
+ ASSISTANT: 'assistant',
9
+ SYSTEM: 'system',
10
+ };
11
+ export const MessageStatus = {
12
+ IN_PROGRESS: 'in_progress',
13
+ COMPLETED: 'completed',
14
+ INCOMPLETE: 'incomplete',
15
+ SENT: 'sent',
16
+ };
5
17
  /**
6
18
  * Message resource (aligned with xpod).
7
19
  *
@@ -16,21 +28,26 @@ import { threadResource } from './thread.schema.js';
16
28
  * - chat/thread are RDF URI relations. Short ids remain accepted at API/query call sites via ORM URI template resolution.
17
29
  */
18
30
  export const messageResource = podTable('chat_message', {
19
- id: id('id'),
31
+ id: id('id').default(messageResourceId),
32
+ commandKind: string('commandKind').predicate(UDFS.commandKind).notNull().default('chat'),
33
+ surfaceId: string('surfaceId').predicate(UDFS.surfaceId).notNull().default('default'),
20
34
  // Chat relation. In RDF this is an inverse Solid Chat link: <chat> wf:message <message>.
21
- chat: uri('chat').predicate(WF.message).inverse().notNull().link(chatResource),
35
+ chat: uri('chat').predicate(WF.message).inverse().link(chatResource),
22
36
  // Thread relation. In RDF this is an inverse Solid Chat/SIOC link: <thread> sioc:has_member <message>.
23
- thread: uri('thread').predicate(SIOC.has_member).inverse().notNull().link(threadResource),
37
+ thread: uri('thread').predicate(SIOC.hasContainer).link(threadResource),
24
38
  // maker is the entity URI of the message author:
25
39
  // - User: their WebID (https://user.pod/profile/card#me)
26
40
  // - AI: Agent URI (/.data/agents/{id}.ttl#this)
27
41
  // - External: Contact URI (/.data/contacts/{id}.ttl#this)
28
42
  // No reference() constraint - accepts any valid URI.
29
- maker: uri('maker').predicate(FOAF.maker).notNull(),
30
- role: string('role').predicate(UDFS.messageType).notNull().default('user'),
43
+ maker: uri('maker').predicate(FOAF.maker),
44
+ role: string('role').predicate(UDFS.messageType).notNull().default(MessageRole.USER),
31
45
  content: text('content').predicate(SIOC.content).notNull(),
32
46
  richContent: text('richContent').predicate(SIOC.richContent),
33
- status: string('status').predicate(UDFS.messageStatus).notNull().default('sent'),
47
+ status: string('status').predicate(UDFS.messageStatus).notNull().default(MessageStatus.COMPLETED),
48
+ toolName: string('toolName').predicate(UDFS.toolName),
49
+ toolCallId: string('toolCallId').predicate(UDFS.toolCallId),
50
+ metadata: object('metadata').predicate(UDFS.metadata),
34
51
  replacedBy: string('replacedBy').predicate(DCTerms.isReplacedBy),
35
52
  deletedAt: timestamp('deletedAt').predicate(SCHEMA.dateDeleted),
36
53
  // Group message extensions
@@ -45,11 +62,10 @@ export const messageResource = podTable('chat_message', {
45
62
  createdAt: timestamp('createdAt').predicate(DCTerms.created).notNull().defaultNow(),
46
63
  updatedAt: timestamp('updatedAt').predicate(DCTerms.modified),
47
64
  }, {
48
- base: '/.data/chat/',
49
- sparqlEndpoint: '/.data/chat/-/sparql',
65
+ base: '/.data/',
66
+ sparqlEndpoint: '/.data/-/sparql',
50
67
  type: MEETING.Message,
51
68
  namespace: UDFS,
52
- subjectTemplate: '{chat|id}/{yyyy}/{MM}/{dd}/messages.ttl#{id}',
53
69
  });
54
70
  // Compatibility alias. New model code should prefer `messageResource`.
55
71
  export const messageTable = messageResource;
@@ -96,6 +96,9 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
96
96
  AuditEntry: 'AuditEntry',
97
97
  AutonomyGrant: 'AutonomyGrant',
98
98
  Issue: 'Issue',
99
+ Task: 'Task',
100
+ Run: 'Run',
101
+ RunStep: 'RunStep',
99
102
  favorite: 'favorite',
100
103
  favoriteType: 'favoriteType',
101
104
  favoriteTarget: 'favoriteTarget',
@@ -114,6 +117,8 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
114
117
  messageResource: 'messageResource',
115
118
  messageType: 'messageType',
116
119
  messageStatus: 'messageStatus',
120
+ commandKind: 'commandKind',
121
+ surfaceId: 'surfaceId',
117
122
  readBy: 'readBy',
118
123
  Contact: 'Contact',
119
124
  PersonContact: 'PersonContact',
@@ -156,6 +161,12 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
156
161
  inbox: 'inbox',
157
162
  issue: 'issue',
158
163
  task: 'task',
164
+ triggerKind: 'triggerKind',
165
+ cron: 'cron',
166
+ intervalSeconds: 'intervalSeconds',
167
+ eventName: 'eventName',
168
+ nextRunAt: 'nextRunAt',
169
+ lastRunAt: 'lastRunAt',
159
170
  priority: 'priority',
160
171
  parentIssue: 'parentIssue',
161
172
  session: 'session',
@@ -202,6 +213,18 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
202
213
  policyVersion: 'policyVersion',
203
214
  parentThreadId: 'parentThreadId',
204
215
  sessionStatus: 'sessionStatus',
216
+ runner: 'runner',
217
+ prompt: 'prompt',
218
+ externalRunId: 'externalRunId',
219
+ leaseOwner: 'leaseOwner',
220
+ leaseExpiresAt: 'leaseExpiresAt',
221
+ heartbeatAt: 'heartbeatAt',
222
+ cancelRequestedAt: 'cancelRequestedAt',
223
+ startedAt: 'startedAt',
224
+ completedAt: 'completedAt',
225
+ error: 'error',
226
+ runId: 'runId',
227
+ run: 'run',
205
228
  sessionTool: 'sessionTool',
206
229
  tokenUsage: 'tokenUsage',
207
230
  groupOwner: 'groupOwner',
@@ -0,0 +1,189 @@
1
+ export type PodModelDescriptorSource = 'official' | 'verified-community' | 'developer' | 'user';
2
+ export type PodModelDescriptorTrustLevel = 'high' | 'medium' | 'low';
3
+ export type PodModelFieldType = 'string' | 'text' | 'number' | 'boolean' | 'timestamp' | 'uri' | 'json';
4
+ export type PodModelMergePolicy = 'create-only' | 'upsert' | 'patch' | 'append';
5
+ export interface PodModelFieldDescriptor {
6
+ type: PodModelFieldType;
7
+ predicate: string;
8
+ required?: boolean;
9
+ secret?: boolean;
10
+ array?: boolean;
11
+ description?: string;
12
+ }
13
+ export interface PodModelDescriptor {
14
+ uri: string;
15
+ version: string;
16
+ source: PodModelDescriptorSource;
17
+ trustLevel: PodModelDescriptorTrustLevel;
18
+ namespace: string;
19
+ class: string;
20
+ resourceKind: string;
21
+ description: string;
22
+ storage: {
23
+ base: string;
24
+ resourceIdPattern: string;
25
+ /**
26
+ * @deprecated subjectTemplate exists only for legacy fragment layouts.
27
+ * New descriptors should express exact base-relative ids through
28
+ * resourceIdPattern and store those ids directly.
29
+ */
30
+ subjectTemplate?: string;
31
+ };
32
+ fields: Record<string, PodModelFieldDescriptor>;
33
+ uniqueBy: string[];
34
+ writableFields: string[];
35
+ mergePolicy: PodModelMergePolicy;
36
+ examples: Array<{
37
+ request: string;
38
+ match: Record<string, unknown>;
39
+ }>;
40
+ }
41
+ export interface PodStorageMutationPlan {
42
+ id: string;
43
+ schemaUri: string;
44
+ operation: 'upsert';
45
+ resourceId: string;
46
+ resourceUri: string;
47
+ match: Record<string, unknown>;
48
+ set: Record<string, unknown>;
49
+ summary: string;
50
+ }
51
+ export type PodStorageValidationResult = {
52
+ ok: true;
53
+ plan: PodStorageMutationPlan;
54
+ } | {
55
+ ok: false;
56
+ error: {
57
+ code: string;
58
+ message: string;
59
+ };
60
+ };
61
+ export type PodStorageCommitResult = {
62
+ ok: true;
63
+ resource: Record<string, unknown>;
64
+ } | {
65
+ ok: false;
66
+ error: {
67
+ code: string;
68
+ message: string;
69
+ };
70
+ };
71
+ export interface PodSchemaClassEntry {
72
+ schemaUri: string;
73
+ resourceKind: string;
74
+ class: string;
75
+ namespace: string;
76
+ source: PodModelDescriptorSource;
77
+ trustLevel: PodModelDescriptorTrustLevel;
78
+ description: string;
79
+ }
80
+ export interface PodSchemaPredicateEntry {
81
+ schemaUri: string;
82
+ field: string;
83
+ predicate: string;
84
+ type: PodModelFieldType;
85
+ required: boolean;
86
+ secret: boolean;
87
+ array: boolean;
88
+ description?: string;
89
+ }
90
+ export interface PodSchemaSearchEntry {
91
+ uri: string;
92
+ resourceKind: string;
93
+ class: string;
94
+ namespace: string;
95
+ source: PodModelDescriptorSource;
96
+ trustLevel: PodModelDescriptorTrustLevel;
97
+ description: string;
98
+ score: number;
99
+ matchedFields: string[];
100
+ }
101
+ export declare const credentialDescriptor: PodModelDescriptor;
102
+ export declare const officialPodModelDescriptors: readonly [PodModelDescriptor];
103
+ export declare function createPodModelDescriptorRegistry(descriptors?: readonly PodModelDescriptor[]): {
104
+ list(filter?: {
105
+ source?: PodModelDescriptorSource;
106
+ resourceKind?: string;
107
+ }): PodModelDescriptor[];
108
+ describe(uri: string): PodModelDescriptor | null;
109
+ };
110
+ export declare const podSchema: {
111
+ list: (filter?: {
112
+ source?: PodModelDescriptorSource;
113
+ resourceKind?: string;
114
+ }) => PodModelDescriptor[];
115
+ describe(uriOrInput: string | {
116
+ uri: string;
117
+ } | {
118
+ schemaUri: string;
119
+ }): PodModelDescriptor | null;
120
+ classes(input?: {
121
+ uri?: string;
122
+ schemaUri?: string;
123
+ }): PodSchemaClassEntry[];
124
+ search(input: {
125
+ query: string;
126
+ source?: PodModelDescriptorSource;
127
+ resourceKind?: string;
128
+ limit?: number;
129
+ }): PodSchemaSearchEntry[];
130
+ predicates(input?: {
131
+ uri?: string;
132
+ schemaUri?: string;
133
+ field?: string;
134
+ }): PodSchemaPredicateEntry[];
135
+ };
136
+ export declare function createPodSchema(registry?: {
137
+ list(filter?: {
138
+ source?: PodModelDescriptorSource;
139
+ resourceKind?: string;
140
+ }): PodModelDescriptor[];
141
+ describe(uri: string): PodModelDescriptor | null;
142
+ }): {
143
+ list: (filter?: {
144
+ source?: PodModelDescriptorSource;
145
+ resourceKind?: string;
146
+ }) => PodModelDescriptor[];
147
+ describe(uriOrInput: string | {
148
+ uri: string;
149
+ } | {
150
+ schemaUri: string;
151
+ }): PodModelDescriptor | null;
152
+ classes(input?: {
153
+ uri?: string;
154
+ schemaUri?: string;
155
+ }): PodSchemaClassEntry[];
156
+ search(input: {
157
+ query: string;
158
+ source?: PodModelDescriptorSource;
159
+ resourceKind?: string;
160
+ limit?: number;
161
+ }): PodSchemaSearchEntry[];
162
+ predicates(input?: {
163
+ uri?: string;
164
+ schemaUri?: string;
165
+ field?: string;
166
+ }): PodSchemaPredicateEntry[];
167
+ };
168
+ export declare function createPodStorage(registry?: {
169
+ list(filter?: {
170
+ source?: PodModelDescriptorSource;
171
+ resourceKind?: string;
172
+ }): PodModelDescriptor[];
173
+ describe(uri: string): PodModelDescriptor | null;
174
+ }, store?: Map<string, Record<string, unknown>>): {
175
+ validate(input: {
176
+ schemaUri?: string;
177
+ operation: "upsert";
178
+ match: Record<string, unknown>;
179
+ set?: Record<string, unknown>;
180
+ }): PodStorageValidationResult;
181
+ commit(input: {
182
+ planId: string;
183
+ }): PodStorageCommitResult;
184
+ read(input: {
185
+ resourceUri: string;
186
+ }): PodStorageCommitResult;
187
+ store: Map<string, Record<string, unknown>>;
188
+ plans: Map<string, PodStorageMutationPlan>;
189
+ };