@undefineds.co/models 0.2.24 → 0.2.26
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/approval.schema.d.ts +4 -0
- package/dist/approval.schema.js +4 -0
- package/dist/audit.presentation.d.ts +1 -1
- package/dist/audit.presentation.js +19 -12
- package/dist/audit.schema.d.ts +4 -0
- package/dist/audit.schema.js +4 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -0
- package/dist/issue.repository.d.ts +69 -0
- package/dist/issue.repository.js +8 -0
- package/dist/issue.schema.d.ts +48 -0
- package/dist/issue.schema.js +37 -0
- package/dist/namespaces.js +6 -0
- package/dist/schema.d.ts +44 -0
- package/dist/schema.js +3 -0
- package/dist/sidecar/persistence-mapping.d.ts +3 -3
- package/dist/sidecar/sidecar-events.d.ts +9 -9
- package/dist/sidecar/sidecar-events.js +1 -1
- package/package.json +2 -2
|
@@ -3,6 +3,8 @@ export declare function extractApprovalIdFromApprovalRef(approvalRef: string | n
|
|
|
3
3
|
export declare const approvalResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
4
4
|
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
5
5
|
session: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
6
|
+
chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
7
|
+
thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
6
8
|
toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
7
9
|
toolName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
8
10
|
target: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
@@ -24,6 +26,8 @@ export declare const approvalResource: import("@undefineds.co/drizzle-solid/dist
|
|
|
24
26
|
export declare const approvalTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
25
27
|
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
26
28
|
session: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
29
|
+
chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
30
|
+
thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
27
31
|
toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
28
32
|
toolName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
29
33
|
target: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
package/dist/approval.schema.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { extractPodResourceTemplateValue, podTable, uri, string, text, timestamp, id } from '@undefineds.co/drizzle-solid';
|
|
2
2
|
import { ODRL, UDFS, DCTerms } from './namespaces.js';
|
|
3
|
+
import { chatResource } from './chat.schema.js';
|
|
4
|
+
import { threadResource } from './thread.schema.js';
|
|
3
5
|
export function buildApprovalSubjectPath(approvalId, createdAt = new Date()) {
|
|
4
6
|
const date = createdAt instanceof Date ? createdAt : new Date(createdAt);
|
|
5
7
|
const safeDate = Number.isFinite(date.getTime()) ? date : new Date();
|
|
@@ -19,6 +21,8 @@ export const approvalResource = podTable('approval', {
|
|
|
19
21
|
id: id('id'),
|
|
20
22
|
// Relations
|
|
21
23
|
session: uri('session').predicate(UDFS.session).notNull(),
|
|
24
|
+
chat: uri('chat').predicate(UDFS.conversation).link(chatResource),
|
|
25
|
+
thread: uri('thread').predicate(UDFS.inThread).link(threadResource),
|
|
22
26
|
toolCallId: string('toolCallId').predicate(UDFS.toolCallId).notNull(),
|
|
23
27
|
// Request details
|
|
24
28
|
toolName: string('toolName').predicate(UDFS.toolName).notNull(),
|
|
@@ -14,7 +14,7 @@ export interface AuditPresentation {
|
|
|
14
14
|
authMessage: string | null;
|
|
15
15
|
actorRoleLabel: string;
|
|
16
16
|
}
|
|
17
|
-
type RelatedApproval = Pick<ApprovalRow, 'target' | 'toolName' | 'risk' | 'reason' | 'status' | 'context'> | null | undefined;
|
|
17
|
+
type RelatedApproval = Pick<ApprovalRow, 'chat' | 'thread' | 'target' | 'toolName' | 'risk' | 'reason' | 'status' | 'context'> | null | undefined;
|
|
18
18
|
export declare function buildAuditDetailRecord(audit: AuditRow, relatedApproval?: RelatedApproval): Record<string, unknown>;
|
|
19
19
|
export declare function formatInboxStatusLabel(status?: string | null): string | null;
|
|
20
20
|
export declare function formatAuditActorRole(role?: string | null): string;
|
|
@@ -33,6 +33,8 @@ export function buildAuditDetailRecord(audit, relatedApproval) {
|
|
|
33
33
|
actorRole: audit.actorRole,
|
|
34
34
|
onBehalfOf: audit.onBehalfOf || undefined,
|
|
35
35
|
session: audit.session || undefined,
|
|
36
|
+
chat: audit.chat || undefined,
|
|
37
|
+
thread: audit.thread || undefined,
|
|
36
38
|
entry: audit.entry || undefined,
|
|
37
39
|
toolCallId: audit.toolCallId || undefined,
|
|
38
40
|
toolName: audit.toolName || undefined,
|
|
@@ -42,6 +44,8 @@ export function buildAuditDetailRecord(audit, relatedApproval) {
|
|
|
42
44
|
createdAt: audit.createdAt,
|
|
43
45
|
relatedApproval: relatedApproval
|
|
44
46
|
? {
|
|
47
|
+
chat: relatedApproval.chat || undefined,
|
|
48
|
+
thread: relatedApproval.thread || undefined,
|
|
45
49
|
target: relatedApproval.target,
|
|
46
50
|
toolName: relatedApproval.toolName,
|
|
47
51
|
risk: relatedApproval.risk,
|
|
@@ -102,9 +106,12 @@ export function createResolvedAuthTimestampsIndex(audits) {
|
|
|
102
106
|
return resolvedAuthTimestampsByKey;
|
|
103
107
|
}
|
|
104
108
|
export function buildAuditPresentation(audit, resolvedAuthTimestampsByKey, relatedApproval) {
|
|
105
|
-
const thread = audit.entry || relatedApproval?.target || null;
|
|
106
|
-
const
|
|
109
|
+
const thread = audit.thread || relatedApproval?.thread || audit.entry || relatedApproval?.target || null;
|
|
110
|
+
const chat = audit.chat || relatedApproval?.chat || null;
|
|
111
|
+
const about = relatedApproval?.target ?? audit.entry ?? audit.approval ?? thread ?? null;
|
|
107
112
|
const { chatId, threadId } = extractChatThreadRef(thread);
|
|
113
|
+
const chatRef = extractChatThreadRef(chat);
|
|
114
|
+
const resolvedChatId = chatId ?? chatRef.chatId;
|
|
108
115
|
const actorRoleLabel = formatAuditActorRole(audit.actorRole);
|
|
109
116
|
if (audit.action === 'runtime.auth_required') {
|
|
110
117
|
const method = audit.toolName || null;
|
|
@@ -117,7 +124,7 @@ export function buildAuditPresentation(audit, resolvedAuthTimestampsByKey, relat
|
|
|
117
124
|
description: method ? `运行时需要完成 ${method} 认证后才能继续。` : '运行时需要额外认证后才能继续。',
|
|
118
125
|
category: 'auth_required',
|
|
119
126
|
status: isResolved ? 'resolved' : 'pending',
|
|
120
|
-
chatId,
|
|
127
|
+
chatId: resolvedChatId,
|
|
121
128
|
threadId,
|
|
122
129
|
thread,
|
|
123
130
|
about,
|
|
@@ -134,7 +141,7 @@ export function buildAuditPresentation(audit, resolvedAuthTimestampsByKey, relat
|
|
|
134
141
|
description: '运行时认证已完成。',
|
|
135
142
|
category: 'audit',
|
|
136
143
|
status: 'resolved',
|
|
137
|
-
chatId,
|
|
144
|
+
chatId: resolvedChatId,
|
|
138
145
|
threadId,
|
|
139
146
|
thread,
|
|
140
147
|
about,
|
|
@@ -152,7 +159,7 @@ export function buildAuditPresentation(audit, resolvedAuthTimestampsByKey, relat
|
|
|
152
159
|
description: [risk, '已进入审批队列'].filter(Boolean).join(' · ') || '工具调用已进入审批队列。',
|
|
153
160
|
category: 'audit',
|
|
154
161
|
status: undefined,
|
|
155
|
-
chatId,
|
|
162
|
+
chatId: resolvedChatId,
|
|
156
163
|
threadId,
|
|
157
164
|
thread,
|
|
158
165
|
about,
|
|
@@ -168,7 +175,7 @@ export function buildAuditPresentation(audit, resolvedAuthTimestampsByKey, relat
|
|
|
168
175
|
description: buildApprovalDecisionDescription(audit, relatedApproval, 'approved'),
|
|
169
176
|
category: 'audit',
|
|
170
177
|
status: 'approved',
|
|
171
|
-
chatId,
|
|
178
|
+
chatId: resolvedChatId,
|
|
172
179
|
threadId,
|
|
173
180
|
thread,
|
|
174
181
|
about,
|
|
@@ -184,7 +191,7 @@ export function buildAuditPresentation(audit, resolvedAuthTimestampsByKey, relat
|
|
|
184
191
|
description: buildApprovalDecisionDescription(audit, relatedApproval, 'rejected'),
|
|
185
192
|
category: 'audit',
|
|
186
193
|
status: 'rejected',
|
|
187
|
-
chatId,
|
|
194
|
+
chatId: resolvedChatId,
|
|
188
195
|
threadId,
|
|
189
196
|
thread,
|
|
190
197
|
about,
|
|
@@ -200,7 +207,7 @@ export function buildAuditPresentation(audit, resolvedAuthTimestampsByKey, relat
|
|
|
200
207
|
description: buildRuntimeSessionDescription(audit, '运行时会话开始执行。'),
|
|
201
208
|
category: 'audit',
|
|
202
209
|
status: 'active',
|
|
203
|
-
chatId,
|
|
210
|
+
chatId: resolvedChatId,
|
|
204
211
|
threadId,
|
|
205
212
|
thread,
|
|
206
213
|
about,
|
|
@@ -216,7 +223,7 @@ export function buildAuditPresentation(audit, resolvedAuthTimestampsByKey, relat
|
|
|
216
223
|
description: buildRuntimeSessionDescription(audit, '运行时会话已暂停。'),
|
|
217
224
|
category: 'audit',
|
|
218
225
|
status: 'paused',
|
|
219
|
-
chatId,
|
|
226
|
+
chatId: resolvedChatId,
|
|
220
227
|
threadId,
|
|
221
228
|
thread,
|
|
222
229
|
about,
|
|
@@ -232,7 +239,7 @@ export function buildAuditPresentation(audit, resolvedAuthTimestampsByKey, relat
|
|
|
232
239
|
description: buildRuntimeSessionDescription(audit, '运行时会话已完成。'),
|
|
233
240
|
category: 'audit',
|
|
234
241
|
status: 'completed',
|
|
235
|
-
chatId,
|
|
242
|
+
chatId: resolvedChatId,
|
|
236
243
|
threadId,
|
|
237
244
|
thread,
|
|
238
245
|
about,
|
|
@@ -248,7 +255,7 @@ export function buildAuditPresentation(audit, resolvedAuthTimestampsByKey, relat
|
|
|
248
255
|
description: buildRuntimeSessionDescription(audit, '运行时会话执行失败。'),
|
|
249
256
|
category: 'audit',
|
|
250
257
|
status: 'error',
|
|
251
|
-
chatId,
|
|
258
|
+
chatId: resolvedChatId,
|
|
252
259
|
threadId,
|
|
253
260
|
thread,
|
|
254
261
|
about,
|
|
@@ -263,7 +270,7 @@ export function buildAuditPresentation(audit, resolvedAuthTimestampsByKey, relat
|
|
|
263
270
|
description: actorRoleLabel,
|
|
264
271
|
category: 'audit',
|
|
265
272
|
status: undefined,
|
|
266
|
-
chatId,
|
|
273
|
+
chatId: resolvedChatId,
|
|
267
274
|
threadId,
|
|
268
275
|
thread,
|
|
269
276
|
about,
|
package/dist/audit.schema.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export declare const auditResource: import("@undefineds.co/drizzle-solid/dist/co
|
|
|
6
6
|
actorRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
7
7
|
onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
8
8
|
session: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
9
|
+
chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
10
|
+
thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
9
11
|
entry: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
10
12
|
toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
11
13
|
toolName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
@@ -22,6 +24,8 @@ export declare const auditTable: import("@undefineds.co/drizzle-solid/dist/core/
|
|
|
22
24
|
actorRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
23
25
|
onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
24
26
|
session: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
27
|
+
chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
28
|
+
thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
25
29
|
entry: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
26
30
|
toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
27
31
|
toolName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
package/dist/audit.schema.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { extractPodResourceTemplateValue, podTable, uri, string, timestamp, id } from '@undefineds.co/drizzle-solid';
|
|
2
2
|
import { UDFS, DCTerms } from './namespaces.js';
|
|
3
|
+
import { chatResource } from './chat.schema.js';
|
|
4
|
+
import { threadResource } from './thread.schema.js';
|
|
3
5
|
export function buildAuditSubjectPath(auditId, createdAt = new Date()) {
|
|
4
6
|
const date = createdAt instanceof Date ? createdAt : new Date(createdAt);
|
|
5
7
|
const safeDate = Number.isFinite(date.getTime()) ? date : new Date();
|
|
@@ -21,6 +23,8 @@ export const auditResource = podTable('audit', {
|
|
|
21
23
|
onBehalfOf: uri('onBehalfOf').predicate(UDFS.onBehalfOf),
|
|
22
24
|
// Relations
|
|
23
25
|
session: uri('session').predicate(UDFS.session),
|
|
26
|
+
chat: uri('chat').predicate(UDFS.conversation).link(chatResource),
|
|
27
|
+
thread: uri('thread').predicate(UDFS.inThread).link(threadResource),
|
|
24
28
|
entry: uri('entry').predicate(UDFS.entry),
|
|
25
29
|
toolCallId: string('toolCallId').predicate(UDFS.toolCallId),
|
|
26
30
|
toolName: string('toolName').predicate(UDFS.toolName),
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export { threadResource, threadTable, type ThreadRow, type ThreadInsert, type Th
|
|
|
12
12
|
export { threadRepository } from './thread.repository';
|
|
13
13
|
export { messageResource, messageTable, type MessageRow, type MessageInsert, type MessageUpdate, } from './message.schema';
|
|
14
14
|
export { messageRepository } from './message.repository';
|
|
15
|
+
export { issueResource, issueTable, type IssueStatus, type IssuePriority, type IssueRow, type IssueInsert, type IssueUpdate, } from './issue.schema';
|
|
16
|
+
export { issueRepository } from './issue.repository';
|
|
15
17
|
export { MessageBlockType, MessageBlockStatus, type BaseMessageBlock, type PlaceholderMessageBlock, type MainTextMessageBlock, type ThinkingMessageBlock, type ImageMessageBlock, type CodeMessageBlock, type ToolMessageBlock, type FileMessageBlock, type ErrorMessageBlock, type CitationMessageBlock, type MessageBlock, type MessageRichContent, createMessageBlock, isBlockType, parseMessageBlocks, serializeMessageBlocks, } from './types/message-block';
|
|
16
18
|
export { type ToolApprovalBlock, type ToolCallBlock, type TaskProgressBlock, type CollaborationRichBlock, type ToolRisk, type ToolApprovalStatus, type ToolCallStatus, type TaskProgressStepStatus, } from "./types/collaboration-blocks";
|
|
17
19
|
export * from "./fixtures/contracts-chat-contact";
|
package/dist/index.js
CHANGED
|
@@ -26,6 +26,9 @@ export { threadResource, threadTable, } from './thread.schema.js';
|
|
|
26
26
|
export { threadRepository } from './thread.repository.js';
|
|
27
27
|
export { messageResource, messageTable, } from './message.schema.js';
|
|
28
28
|
export { messageRepository } from './message.repository.js';
|
|
29
|
+
// Issue - user-facing work item that can be inspected through chat/thread
|
|
30
|
+
export { issueResource, issueTable, } from './issue.schema.js';
|
|
31
|
+
export { issueRepository } from './issue.repository.js';
|
|
29
32
|
// Message Block - 消息块类型系统 (Block-based Message System)
|
|
30
33
|
export { MessageBlockType, MessageBlockStatus, createMessageBlock, isBlockType, parseMessageBlocks, serializeMessageBlocks, } from './types/message-block.js';
|
|
31
34
|
// Wave A CP0: fixtures for downstream parallel development
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export declare const issueRepository: import("@undefineds.co/drizzle-solid/dist/core/repository").PodRepositoryDescriptor<import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
2
|
+
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
3
|
+
title: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
4
|
+
description: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
5
|
+
status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
|
|
6
|
+
priority: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, true>;
|
|
7
|
+
labels: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "string", false, false>;
|
|
8
|
+
chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
9
|
+
thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
10
|
+
parentIssue: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
11
|
+
tasks: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
|
|
12
|
+
createdBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
13
|
+
assignedTo: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
14
|
+
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
15
|
+
updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
16
|
+
closedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
17
|
+
deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
18
|
+
}>>, {
|
|
19
|
+
id: string;
|
|
20
|
+
title: string;
|
|
21
|
+
description: string;
|
|
22
|
+
status: string;
|
|
23
|
+
priority: string;
|
|
24
|
+
labels: string[];
|
|
25
|
+
chat: string;
|
|
26
|
+
thread: string;
|
|
27
|
+
parentIssue: string;
|
|
28
|
+
tasks: string[];
|
|
29
|
+
createdBy: string;
|
|
30
|
+
assignedTo: string;
|
|
31
|
+
createdAt: Date;
|
|
32
|
+
updatedAt: Date;
|
|
33
|
+
closedAt: Date;
|
|
34
|
+
deletedAt: Date;
|
|
35
|
+
}, {
|
|
36
|
+
title: string;
|
|
37
|
+
id?: string | undefined;
|
|
38
|
+
description?: string | undefined;
|
|
39
|
+
status?: string | undefined;
|
|
40
|
+
priority?: string | undefined;
|
|
41
|
+
labels?: string[] | undefined;
|
|
42
|
+
chat?: string | undefined;
|
|
43
|
+
thread?: string | undefined;
|
|
44
|
+
parentIssue?: string | undefined;
|
|
45
|
+
tasks?: string[] | undefined;
|
|
46
|
+
createdBy?: string | undefined;
|
|
47
|
+
assignedTo?: string | undefined;
|
|
48
|
+
createdAt?: Date | undefined;
|
|
49
|
+
updatedAt?: Date | undefined;
|
|
50
|
+
closedAt?: Date | undefined;
|
|
51
|
+
deletedAt?: Date | undefined;
|
|
52
|
+
}, {
|
|
53
|
+
id?: string | null | undefined;
|
|
54
|
+
title?: string | undefined;
|
|
55
|
+
description?: string | null | undefined;
|
|
56
|
+
status?: string | undefined;
|
|
57
|
+
priority?: string | null | undefined;
|
|
58
|
+
labels?: string[] | null | undefined;
|
|
59
|
+
chat?: string | null | undefined;
|
|
60
|
+
thread?: string | null | undefined;
|
|
61
|
+
parentIssue?: string | null | undefined;
|
|
62
|
+
tasks?: string[] | null | undefined;
|
|
63
|
+
createdBy?: string | null | undefined;
|
|
64
|
+
assignedTo?: string | null | undefined;
|
|
65
|
+
createdAt?: Date | undefined;
|
|
66
|
+
updatedAt?: Date | undefined;
|
|
67
|
+
closedAt?: Date | null | undefined;
|
|
68
|
+
deletedAt?: Date | null | undefined;
|
|
69
|
+
}, Record<string, unknown>>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { definePodRepository } from './repository.js';
|
|
2
|
+
import { issueResource } from './issue.schema.js';
|
|
3
|
+
export const issueRepository = definePodRepository({
|
|
4
|
+
namespace: 'issue',
|
|
5
|
+
table: issueResource,
|
|
6
|
+
searchableFields: ['title', 'description'],
|
|
7
|
+
defaultSort: { field: 'updatedAt', direction: 'desc' },
|
|
8
|
+
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export type IssueStatus = 'open' | 'triaging' | 'in_progress' | 'blocked' | 'resolved' | 'closed';
|
|
2
|
+
export type IssuePriority = 'low' | 'medium' | 'high' | 'urgent';
|
|
3
|
+
/**
|
|
4
|
+
* User-facing work item.
|
|
5
|
+
*
|
|
6
|
+
* Issue is the product entry for a requirement, bug, support item,
|
|
7
|
+
* investigation, or feature request. Executable slices live in Task.
|
|
8
|
+
* The visible process remains Chat/Thread/Message through chat/thread links.
|
|
9
|
+
*/
|
|
10
|
+
export declare const issueResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
11
|
+
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
12
|
+
title: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
13
|
+
description: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
14
|
+
status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
|
|
15
|
+
priority: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, true>;
|
|
16
|
+
labels: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "string", false, false>;
|
|
17
|
+
chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
18
|
+
thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
19
|
+
parentIssue: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
20
|
+
tasks: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
|
|
21
|
+
createdBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
22
|
+
assignedTo: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
23
|
+
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
24
|
+
updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
25
|
+
closedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
26
|
+
deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
27
|
+
}>>;
|
|
28
|
+
export declare const issueTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
29
|
+
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
30
|
+
title: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
31
|
+
description: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
32
|
+
status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
|
|
33
|
+
priority: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, true>;
|
|
34
|
+
labels: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "string", false, false>;
|
|
35
|
+
chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
36
|
+
thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
37
|
+
parentIssue: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
38
|
+
tasks: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
|
|
39
|
+
createdBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
40
|
+
assignedTo: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
41
|
+
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
42
|
+
updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
43
|
+
closedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
44
|
+
deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
45
|
+
}>>;
|
|
46
|
+
export type IssueRow = typeof issueResource.$inferSelect;
|
|
47
|
+
export type IssueInsert = typeof issueResource.$inferInsert;
|
|
48
|
+
export type IssueUpdate = typeof issueResource.$inferUpdate;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { id, podTable, string, text, timestamp, uri } from '@undefineds.co/drizzle-solid';
|
|
2
|
+
import { DCTerms, UDFS } from './namespaces.js';
|
|
3
|
+
import { chatResource } from './chat.schema.js';
|
|
4
|
+
import { threadResource } from './thread.schema.js';
|
|
5
|
+
/**
|
|
6
|
+
* User-facing work item.
|
|
7
|
+
*
|
|
8
|
+
* Issue is the product entry for a requirement, bug, support item,
|
|
9
|
+
* investigation, or feature request. Executable slices live in Task.
|
|
10
|
+
* The visible process remains Chat/Thread/Message through chat/thread links.
|
|
11
|
+
*/
|
|
12
|
+
export const issueResource = podTable('issue', {
|
|
13
|
+
id: id('id'),
|
|
14
|
+
title: string('title').predicate(DCTerms.title).notNull(),
|
|
15
|
+
description: text('description').predicate(DCTerms.description),
|
|
16
|
+
status: string('status').predicate(UDFS.status).notNull().default('open'),
|
|
17
|
+
priority: string('priority').predicate(UDFS.priority).default('medium'),
|
|
18
|
+
labels: text('labels').array().predicate(UDFS.tags),
|
|
19
|
+
chat: uri('chat').predicate(UDFS.conversation).link(chatResource),
|
|
20
|
+
thread: uri('thread').predicate(UDFS.inThread).link(threadResource),
|
|
21
|
+
parentIssue: uri('parentIssue').predicate(UDFS.parentIssue).link('issue'),
|
|
22
|
+
tasks: uri('tasks').predicate(UDFS.task).array(),
|
|
23
|
+
createdBy: uri('createdBy').predicate(DCTerms.creator),
|
|
24
|
+
assignedTo: uri('assignedTo').predicate(UDFS.assignedTo),
|
|
25
|
+
createdAt: timestamp('createdAt').predicate(DCTerms.created).notNull().defaultNow(),
|
|
26
|
+
updatedAt: timestamp('updatedAt').predicate(DCTerms.modified).notNull().defaultNow(),
|
|
27
|
+
closedAt: timestamp('closedAt').predicate(UDFS.closedAt),
|
|
28
|
+
deletedAt: timestamp('deletedAt').predicate(UDFS.deletedAt),
|
|
29
|
+
}, {
|
|
30
|
+
base: '/.data/issues/',
|
|
31
|
+
sparqlEndpoint: '/.data/issues/-/sparql',
|
|
32
|
+
type: UDFS.Issue,
|
|
33
|
+
namespace: UDFS,
|
|
34
|
+
subjectTemplate: '{id}.ttl',
|
|
35
|
+
});
|
|
36
|
+
// Compatibility alias. New model code should prefer `issueResource`.
|
|
37
|
+
export const issueTable = issueResource;
|
package/dist/namespaces.js
CHANGED
|
@@ -95,6 +95,7 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
|
|
|
95
95
|
ApprovalRequest: 'ApprovalRequest',
|
|
96
96
|
AuditEntry: 'AuditEntry',
|
|
97
97
|
AutonomyGrant: 'AutonomyGrant',
|
|
98
|
+
Issue: 'Issue',
|
|
98
99
|
favorite: 'favorite',
|
|
99
100
|
favoriteType: 'favoriteType',
|
|
100
101
|
favoriteTarget: 'favoriteTarget',
|
|
@@ -153,12 +154,17 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
|
|
|
153
154
|
apiKey: 'apiKey',
|
|
154
155
|
baseUrl: 'baseUrl',
|
|
155
156
|
inbox: 'inbox',
|
|
157
|
+
issue: 'issue',
|
|
158
|
+
task: 'task',
|
|
159
|
+
priority: 'priority',
|
|
160
|
+
parentIssue: 'parentIssue',
|
|
156
161
|
session: 'session',
|
|
157
162
|
status: 'status',
|
|
158
163
|
risk: 'risk',
|
|
159
164
|
assignedTo: 'assignedTo',
|
|
160
165
|
reason: 'reason',
|
|
161
166
|
resolvedAt: 'resolvedAt',
|
|
167
|
+
closedAt: 'closedAt',
|
|
162
168
|
action: 'action',
|
|
163
169
|
actor: 'actor',
|
|
164
170
|
actorRole: 'actorRole',
|
package/dist/schema.d.ts
CHANGED
|
@@ -236,9 +236,29 @@ export declare const solidResources: {
|
|
|
236
236
|
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
237
237
|
modifiedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
238
238
|
}>>;
|
|
239
|
+
issueResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
240
|
+
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
241
|
+
title: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
242
|
+
description: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
243
|
+
status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
|
|
244
|
+
priority: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, true>;
|
|
245
|
+
labels: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "string", false, false>;
|
|
246
|
+
chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
247
|
+
thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
248
|
+
parentIssue: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
249
|
+
tasks: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
|
|
250
|
+
createdBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
251
|
+
assignedTo: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
252
|
+
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
253
|
+
updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
254
|
+
closedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
255
|
+
deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
256
|
+
}>>;
|
|
239
257
|
approvalResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
240
258
|
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
241
259
|
session: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
260
|
+
chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
261
|
+
thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
242
262
|
toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
243
263
|
toolName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
244
264
|
target: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
@@ -264,6 +284,8 @@ export declare const solidResources: {
|
|
|
264
284
|
actorRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
265
285
|
onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
266
286
|
session: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
287
|
+
chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
288
|
+
thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
267
289
|
entry: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
268
290
|
toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
269
291
|
toolName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
@@ -545,9 +567,29 @@ export declare const solidSchema: {
|
|
|
545
567
|
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
546
568
|
modifiedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
547
569
|
}>>;
|
|
570
|
+
issueTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
571
|
+
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
572
|
+
title: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
573
|
+
description: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
574
|
+
status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
|
|
575
|
+
priority: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, true>;
|
|
576
|
+
labels: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "string", false, false>;
|
|
577
|
+
chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
578
|
+
thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
579
|
+
parentIssue: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
580
|
+
tasks: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
|
|
581
|
+
createdBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
582
|
+
assignedTo: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
583
|
+
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
584
|
+
updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
585
|
+
closedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
586
|
+
deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
587
|
+
}>>;
|
|
548
588
|
approvalTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
549
589
|
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
550
590
|
session: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
591
|
+
chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
592
|
+
thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
551
593
|
toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
552
594
|
toolName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
553
595
|
target: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
@@ -573,6 +615,8 @@ export declare const solidSchema: {
|
|
|
573
615
|
actorRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
574
616
|
onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
575
617
|
session: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
618
|
+
chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
619
|
+
thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
576
620
|
entry: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
577
621
|
toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
578
622
|
toolName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
package/dist/schema.js
CHANGED
|
@@ -11,6 +11,7 @@ import { favoriteResource, favoriteTable } from './favorite/favorite.schema.js';
|
|
|
11
11
|
import { fileResource, fileTable } from './file/file.schema.js';
|
|
12
12
|
import { grantResource, grantTable } from './grant.schema.js';
|
|
13
13
|
import { inboxNotificationResource, inboxNotificationTable } from './inbox-notification.schema.js';
|
|
14
|
+
import { issueResource, issueTable } from './issue.schema.js';
|
|
14
15
|
import { messageResource, messageTable } from './message.schema.js';
|
|
15
16
|
import { solidProfileResource, solidProfileTable } from './profile.schema.js';
|
|
16
17
|
import { sessionResource, sessionTable } from './session/index.js';
|
|
@@ -34,6 +35,7 @@ export const solidResources = {
|
|
|
34
35
|
fileResource,
|
|
35
36
|
favoriteResource,
|
|
36
37
|
settingsResource,
|
|
38
|
+
issueResource,
|
|
37
39
|
// Sidecar collaboration data
|
|
38
40
|
approvalResource,
|
|
39
41
|
auditResource,
|
|
@@ -60,6 +62,7 @@ export const solidSchema = {
|
|
|
60
62
|
fileTable,
|
|
61
63
|
favoriteTable,
|
|
62
64
|
settingsTable,
|
|
65
|
+
issueTable,
|
|
63
66
|
// Sidecar collaboration data
|
|
64
67
|
approvalTable,
|
|
65
68
|
auditTable,
|
|
@@ -4,14 +4,14 @@ import type { GrantInsert } from '../grant.schema';
|
|
|
4
4
|
import type { InboxNotificationInsert } from '../inbox-notification.schema';
|
|
5
5
|
import type { ToolCallEvent, InboxApprovalEvent, SessionStateEvent } from './sidecar-events';
|
|
6
6
|
export type ChatSessionProjection = {
|
|
7
|
-
|
|
7
|
+
chat: string;
|
|
8
8
|
sessionStatus: 'active' | 'paused' | 'completed' | 'error';
|
|
9
9
|
policy?: string;
|
|
10
10
|
policyVersion?: string;
|
|
11
11
|
};
|
|
12
|
-
export type ApprovalProjectionInsert = Pick<ApprovalInsert, 'session' | 'toolCallId' | 'toolName' | 'target' | 'action' | 'risk' | 'status' | 'context' | 'approvalOptions' | 'policyVersion' | 'expiresAt'>;
|
|
12
|
+
export type ApprovalProjectionInsert = Pick<ApprovalInsert, 'session' | 'chat' | 'thread' | 'toolCallId' | 'toolName' | 'target' | 'action' | 'risk' | 'status' | 'context' | 'approvalOptions' | 'policyVersion' | 'expiresAt'>;
|
|
13
13
|
export type ApprovalProjectionUpdate = Partial<Pick<ApprovalUpdate, 'status' | 'assignedTo' | 'decisionBy' | 'decisionRole' | 'onBehalfOf' | 'reason' | 'policyVersion' | 'resolvedAt'>>;
|
|
14
|
-
export type AuditProjectionInsert = Pick<AuditInsert, 'action' | 'actor' | 'actorRole' | 'onBehalfOf' | 'session' | 'entry' | 'toolCallId' | 'toolName' | 'approval' | 'policy' | 'policyVersion'>;
|
|
14
|
+
export type AuditProjectionInsert = Pick<AuditInsert, 'action' | 'actor' | 'actorRole' | 'onBehalfOf' | 'session' | 'chat' | 'thread' | 'entry' | 'toolCallId' | 'toolName' | 'approval' | 'policy' | 'policyVersion'>;
|
|
15
15
|
export type GrantProjectionInsert = Pick<GrantInsert, 'target' | 'action' | 'title' | 'summary' | 'body' | 'schema' | 'pageKind' | 'wikiStatus' | 'tags' | 'source' | 'sourceHash' | 'compiledAt' | 'compiledFrom' | 'related' | 'effect' | 'riskCeiling' | 'policy' | 'context' | 'decisionBy' | 'decisionRole' | 'onBehalfOf'>;
|
|
16
16
|
export type InboxNotificationProjectionInsert = Pick<InboxNotificationInsert, 'actor' | 'object'>;
|
|
17
17
|
export declare const SidecarEventToPodMapping: {
|
|
@@ -200,7 +200,7 @@ export declare const SessionStateEventV1Schema: z.ZodObject<{
|
|
|
200
200
|
type: z.ZodLiteral<"session.state">;
|
|
201
201
|
version: z.ZodOptional<z.ZodLiteral<1>>;
|
|
202
202
|
sessionId: z.ZodString;
|
|
203
|
-
|
|
203
|
+
chat: z.ZodString;
|
|
204
204
|
policy: z.ZodOptional<z.ZodString>;
|
|
205
205
|
policyVersion: z.ZodOptional<z.ZodString>;
|
|
206
206
|
status: z.ZodEnum<["active", "paused", "completed", "error"]>;
|
|
@@ -212,8 +212,8 @@ export declare const SessionStateEventV1Schema: z.ZodObject<{
|
|
|
212
212
|
status: "error" | "paused" | "active" | "completed";
|
|
213
213
|
tokenUsage: number;
|
|
214
214
|
type: "session.state";
|
|
215
|
+
chat: string;
|
|
215
216
|
tool: "claude-code" | "cursor" | "windsurf";
|
|
216
|
-
chatId: string;
|
|
217
217
|
sessionId: string;
|
|
218
218
|
timestamp: string;
|
|
219
219
|
previousStatus: string;
|
|
@@ -224,8 +224,8 @@ export declare const SessionStateEventV1Schema: z.ZodObject<{
|
|
|
224
224
|
status: "error" | "paused" | "active" | "completed";
|
|
225
225
|
tokenUsage: number;
|
|
226
226
|
type: "session.state";
|
|
227
|
+
chat: string;
|
|
227
228
|
tool: "claude-code" | "cursor" | "windsurf";
|
|
228
|
-
chatId: string;
|
|
229
229
|
sessionId: string;
|
|
230
230
|
timestamp: string;
|
|
231
231
|
previousStatus: string;
|
|
@@ -237,7 +237,7 @@ export declare const SessionStateEventSchema: z.ZodObject<{
|
|
|
237
237
|
type: z.ZodLiteral<"session.state">;
|
|
238
238
|
version: z.ZodOptional<z.ZodLiteral<1>>;
|
|
239
239
|
sessionId: z.ZodString;
|
|
240
|
-
|
|
240
|
+
chat: z.ZodString;
|
|
241
241
|
policy: z.ZodOptional<z.ZodString>;
|
|
242
242
|
policyVersion: z.ZodOptional<z.ZodString>;
|
|
243
243
|
status: z.ZodEnum<["active", "paused", "completed", "error"]>;
|
|
@@ -249,8 +249,8 @@ export declare const SessionStateEventSchema: z.ZodObject<{
|
|
|
249
249
|
status: "error" | "paused" | "active" | "completed";
|
|
250
250
|
tokenUsage: number;
|
|
251
251
|
type: "session.state";
|
|
252
|
+
chat: string;
|
|
252
253
|
tool: "claude-code" | "cursor" | "windsurf";
|
|
253
|
-
chatId: string;
|
|
254
254
|
sessionId: string;
|
|
255
255
|
timestamp: string;
|
|
256
256
|
previousStatus: string;
|
|
@@ -261,8 +261,8 @@ export declare const SessionStateEventSchema: z.ZodObject<{
|
|
|
261
261
|
status: "error" | "paused" | "active" | "completed";
|
|
262
262
|
tokenUsage: number;
|
|
263
263
|
type: "session.state";
|
|
264
|
+
chat: string;
|
|
264
265
|
tool: "claude-code" | "cursor" | "windsurf";
|
|
265
|
-
chatId: string;
|
|
266
266
|
sessionId: string;
|
|
267
267
|
timestamp: string;
|
|
268
268
|
previousStatus: string;
|
|
@@ -646,7 +646,7 @@ export declare const SidecarEventSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
646
646
|
type: z.ZodLiteral<"session.state">;
|
|
647
647
|
version: z.ZodOptional<z.ZodLiteral<1>>;
|
|
648
648
|
sessionId: z.ZodString;
|
|
649
|
-
|
|
649
|
+
chat: z.ZodString;
|
|
650
650
|
policy: z.ZodOptional<z.ZodString>;
|
|
651
651
|
policyVersion: z.ZodOptional<z.ZodString>;
|
|
652
652
|
status: z.ZodEnum<["active", "paused", "completed", "error"]>;
|
|
@@ -658,8 +658,8 @@ export declare const SidecarEventSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
658
658
|
status: "error" | "paused" | "active" | "completed";
|
|
659
659
|
tokenUsage: number;
|
|
660
660
|
type: "session.state";
|
|
661
|
+
chat: string;
|
|
661
662
|
tool: "claude-code" | "cursor" | "windsurf";
|
|
662
|
-
chatId: string;
|
|
663
663
|
sessionId: string;
|
|
664
664
|
timestamp: string;
|
|
665
665
|
previousStatus: string;
|
|
@@ -670,8 +670,8 @@ export declare const SidecarEventSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
670
670
|
status: "error" | "paused" | "active" | "completed";
|
|
671
671
|
tokenUsage: number;
|
|
672
672
|
type: "session.state";
|
|
673
|
+
chat: string;
|
|
673
674
|
tool: "claude-code" | "cursor" | "windsurf";
|
|
674
|
-
chatId: string;
|
|
675
675
|
sessionId: string;
|
|
676
676
|
timestamp: string;
|
|
677
677
|
previousStatus: string;
|
|
@@ -57,7 +57,7 @@ export const SessionStateEventV1Schema = z
|
|
|
57
57
|
type: z.literal('session.state'),
|
|
58
58
|
version: z.literal(1).optional(),
|
|
59
59
|
sessionId: z.string(),
|
|
60
|
-
|
|
60
|
+
chat: z.string(),
|
|
61
61
|
policy: z.string().optional(),
|
|
62
62
|
policyVersion: z.string().optional(),
|
|
63
63
|
status: SessionStatusSchema,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@undefineds.co/models",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.26",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"pack:release": "node scripts/pack-release.mjs",
|
|
63
63
|
"sync:discovery:vercel": "node --experimental-strip-types scripts/sync-discovery-vercel.ts",
|
|
64
64
|
"test": "vitest run",
|
|
65
|
-
"test:ci": "vitest run tests/ai-config.test.ts tests/ai-runtime-schema.test.ts tests/client.test.ts tests/contracts-chat-contact.contract.test.ts tests/discovery-vercel.test.ts tests/discovery.test.ts tests/profile.test.ts tests/repository.test.ts tests/resource-utils.test.ts tests/session-schema.test.ts tests/sidecar-events.contract.test.ts tests/resource-schema.test.ts",
|
|
65
|
+
"test:ci": "vitest run tests/ai-config.test.ts tests/ai-runtime-schema.test.ts tests/client.test.ts tests/contracts-chat-contact.contract.test.ts tests/discovery-vercel.test.ts tests/discovery.test.ts tests/issue-schema.test.ts tests/profile.test.ts tests/repository.test.ts tests/resource-utils.test.ts tests/session-schema.test.ts tests/sidecar-events.contract.test.ts tests/resource-schema.test.ts",
|
|
66
66
|
"test:pod": "dotenv -e ../linx-models/.env -- vitest run tests/pod.integration.test.ts"
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|