@undefineds.co/models 0.2.12 → 0.2.14
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 +22 -3
- package/dist/approval.schema.js +13 -3
- package/dist/audit.schema.d.ts +21 -4
- package/dist/audit.schema.js +20 -8
- package/dist/grant.schema.d.ts +17 -3
- package/dist/grant.schema.js +9 -5
- package/dist/inbox-notification.schema.d.ts +1 -0
- package/dist/inbox-notification.schema.js +5 -2
- package/dist/index.d.ts +4 -4
- package/dist/index.js +4 -4
- package/dist/namespaces.js +2 -0
- package/dist/schema.d.ts +9 -5
- package/dist/schema.js +6 -6
- package/dist/session/index.d.ts +1 -1
- package/dist/session/index.js +1 -1
- package/dist/session/session.schema.d.ts +2 -1
- package/dist/session/session.schema.js +11 -4
- package/dist/settings/settings.schema.js +3 -2
- package/dist/sidecar/persistence-mapping.d.ts +1 -1
- package/dist/vocab/sidecar.vocab.d.ts +2 -1
- package/dist/vocab/sidecar.vocab.js +2 -1
- package/package.json +10 -2
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
export declare function buildApprovalSubjectPath(approvalId: string, createdAt?: Date | string | number): string;
|
|
2
|
+
export declare const approvalResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
3
|
+
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
4
|
+
session: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
5
|
+
toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
6
|
+
toolName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
7
|
+
target: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
8
|
+
action: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
9
|
+
risk: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
10
|
+
status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
|
|
11
|
+
assignedTo: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
12
|
+
decisionBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
13
|
+
decisionRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
14
|
+
onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
15
|
+
reason: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
16
|
+
policyVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
17
|
+
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
18
|
+
resolvedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
19
|
+
}>>;
|
|
1
20
|
export declare const approvalTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
2
21
|
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
3
22
|
session: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
@@ -16,6 +35,6 @@ export declare const approvalTable: import("@undefineds.co/drizzle-solid/dist/co
|
|
|
16
35
|
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
17
36
|
resolvedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
18
37
|
}>>;
|
|
19
|
-
export type ApprovalRow = typeof
|
|
20
|
-
export type ApprovalInsert = typeof
|
|
21
|
-
export type ApprovalUpdate = typeof
|
|
38
|
+
export type ApprovalRow = typeof approvalResource.$inferSelect;
|
|
39
|
+
export type ApprovalInsert = typeof approvalResource.$inferInsert;
|
|
40
|
+
export type ApprovalUpdate = typeof approvalResource.$inferUpdate;
|
package/dist/approval.schema.js
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { podTable, uri, string, text, timestamp, id } from '@undefineds.co/drizzle-solid';
|
|
2
2
|
import { ODRL, UDFS, DCTerms } from './namespaces.js';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
export function buildApprovalSubjectPath(approvalId, createdAt = new Date()) {
|
|
4
|
+
const date = createdAt instanceof Date ? createdAt : new Date(createdAt);
|
|
5
|
+
const safeDate = Number.isFinite(date.getTime()) ? date : new Date();
|
|
6
|
+
const yyyy = String(safeDate.getUTCFullYear());
|
|
7
|
+
const mm = String(safeDate.getUTCMonth() + 1).padStart(2, '0');
|
|
8
|
+
const dd = String(safeDate.getUTCDate()).padStart(2, '0');
|
|
9
|
+
return `/.data/approvals/${yyyy}/${mm}/${dd}.ttl#${encodeURIComponent(approvalId)}`;
|
|
10
|
+
}
|
|
11
|
+
// Approval request resource (separate from Solid inbox notifications).
|
|
12
|
+
export const approvalResource = podTable('approval', {
|
|
5
13
|
id: id('id'),
|
|
6
14
|
// Relations
|
|
7
15
|
session: uri('session').predicate(UDFS.session).notNull(),
|
|
@@ -29,5 +37,7 @@ export const approvalTable = podTable('approval', {
|
|
|
29
37
|
sparqlEndpoint: '/.data/approvals/-/sparql',
|
|
30
38
|
type: UDFS.ApprovalRequest,
|
|
31
39
|
namespace: UDFS,
|
|
32
|
-
subjectTemplate: '{
|
|
40
|
+
subjectTemplate: '{yyyy}/{MM}/{dd}.ttl#{id}',
|
|
33
41
|
});
|
|
42
|
+
// Compatibility alias. New model code should prefer `approvalResource`.
|
|
43
|
+
export const approvalTable = approvalResource;
|
package/dist/audit.schema.d.ts
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
export declare const auditResource: 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
|
+
action: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
4
|
+
actor: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
5
|
+
actorRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
6
|
+
onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
7
|
+
session: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
8
|
+
entry: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
9
|
+
toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
10
|
+
toolName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
11
|
+
approval: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
12
|
+
policy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
13
|
+
policyVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
14
|
+
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
15
|
+
}>>;
|
|
16
|
+
export declare function buildAuditSubjectPath(auditId: string, createdAt?: Date | string | number): string;
|
|
1
17
|
export declare const auditTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
2
18
|
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
3
19
|
action: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
@@ -5,13 +21,14 @@ export declare const auditTable: import("@undefineds.co/drizzle-solid/dist/core/
|
|
|
5
21
|
actorRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
6
22
|
onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
7
23
|
session: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
24
|
+
entry: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
8
25
|
toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
26
|
+
toolName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
9
27
|
approval: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
10
|
-
context: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
11
28
|
policy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
12
29
|
policyVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
13
30
|
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
14
31
|
}>>;
|
|
15
|
-
export type AuditRow = typeof
|
|
16
|
-
export type AuditInsert = typeof
|
|
17
|
-
export type AuditUpdate = typeof
|
|
32
|
+
export type AuditRow = typeof auditResource.$inferSelect;
|
|
33
|
+
export type AuditInsert = typeof auditResource.$inferInsert;
|
|
34
|
+
export type AuditUpdate = typeof auditResource.$inferUpdate;
|
package/dist/audit.schema.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { podTable, uri, string,
|
|
1
|
+
import { podTable, uri, string, timestamp, id } from '@undefineds.co/drizzle-solid';
|
|
2
2
|
import { UDFS, DCTerms } from './namespaces.js';
|
|
3
|
-
// Append-only audit
|
|
4
|
-
|
|
3
|
+
// Append-only audit entry resource (separate from Solid inbox notifications).
|
|
4
|
+
// Audit entries are independent events; session/chat/thread are optional relations,
|
|
5
|
+
// not storage ownership boundaries.
|
|
6
|
+
export const auditResource = podTable('audit', {
|
|
5
7
|
id: id('id'),
|
|
6
8
|
// Audit action
|
|
7
9
|
action: string('action').predicate(UDFS.action).notNull(),
|
|
@@ -11,19 +13,29 @@ export const auditTable = podTable('audit', {
|
|
|
11
13
|
onBehalfOf: uri('onBehalfOf').predicate(UDFS.onBehalfOf),
|
|
12
14
|
// Relations
|
|
13
15
|
session: uri('session').predicate(UDFS.session),
|
|
16
|
+
entry: uri('entry').predicate(UDFS.entry),
|
|
14
17
|
toolCallId: string('toolCallId').predicate(UDFS.toolCallId),
|
|
18
|
+
toolName: string('toolName').predicate(UDFS.toolName),
|
|
15
19
|
approval: uri('approval').predicate(UDFS.approval),
|
|
16
|
-
// JSON payload with policy/reasoning snapshot
|
|
17
|
-
context: text('context').predicate(UDFS.context),
|
|
18
20
|
// Policy metadata
|
|
19
21
|
policy: uri('policy').predicate(UDFS.policy),
|
|
20
22
|
policyVersion: string('policyVersion').predicate(UDFS.policyVersion),
|
|
21
23
|
// Timestamps
|
|
22
24
|
createdAt: timestamp('createdAt').predicate(DCTerms.created).notNull().defaultNow(),
|
|
23
25
|
}, {
|
|
24
|
-
base: '/.data/
|
|
25
|
-
sparqlEndpoint: '/.data/
|
|
26
|
+
base: '/.data/audits/',
|
|
27
|
+
sparqlEndpoint: '/.data/audits/-/sparql',
|
|
26
28
|
type: UDFS.AuditEntry,
|
|
27
29
|
namespace: UDFS,
|
|
28
|
-
subjectTemplate: '{
|
|
30
|
+
subjectTemplate: '{yyyy}/{MM}/{dd}.ttl#{id}',
|
|
29
31
|
});
|
|
32
|
+
export function buildAuditSubjectPath(auditId, createdAt = new Date()) {
|
|
33
|
+
const date = createdAt instanceof Date ? createdAt : new Date(createdAt);
|
|
34
|
+
const safeDate = Number.isFinite(date.getTime()) ? date : new Date();
|
|
35
|
+
const yyyy = String(safeDate.getUTCFullYear());
|
|
36
|
+
const mm = String(safeDate.getUTCMonth() + 1).padStart(2, '0');
|
|
37
|
+
const dd = String(safeDate.getUTCDate()).padStart(2, '0');
|
|
38
|
+
return `/.data/audits/${yyyy}/${mm}/${dd}.ttl#${encodeURIComponent(auditId)}`;
|
|
39
|
+
}
|
|
40
|
+
// Compatibility alias. New model code should prefer `auditResource`.
|
|
41
|
+
export const auditTable = auditResource;
|
package/dist/grant.schema.d.ts
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
export declare function buildGrantSubjectPath(grantId: string): string;
|
|
2
|
+
export declare const grantResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
3
|
+
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
4
|
+
rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", true, true>;
|
|
5
|
+
target: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
6
|
+
action: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
7
|
+
effect: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
8
|
+
riskCeiling: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
9
|
+
decisionBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
10
|
+
decisionRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
11
|
+
onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
12
|
+
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
13
|
+
revokedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
14
|
+
}>>;
|
|
1
15
|
export declare const grantTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
2
16
|
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
3
17
|
rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", true, true>;
|
|
@@ -11,6 +25,6 @@ export declare const grantTable: import("@undefineds.co/drizzle-solid/dist/core/
|
|
|
11
25
|
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
12
26
|
revokedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
13
27
|
}>>;
|
|
14
|
-
export type GrantRow = typeof
|
|
15
|
-
export type GrantInsert = typeof
|
|
16
|
-
export type GrantUpdate = typeof
|
|
28
|
+
export type GrantRow = typeof grantResource.$inferSelect;
|
|
29
|
+
export type GrantInsert = typeof grantResource.$inferInsert;
|
|
30
|
+
export type GrantUpdate = typeof grantResource.$inferUpdate;
|
package/dist/grant.schema.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { podTable, uri, string, timestamp, id } from '@undefineds.co/drizzle-solid';
|
|
2
2
|
import { RDF, ODRL, UDFS, DCTerms } from './namespaces.js';
|
|
3
|
-
|
|
3
|
+
export function buildGrantSubjectPath(grantId) {
|
|
4
|
+
return `/settings/autonomy/grants.ttl#${encodeURIComponent(grantId)}`;
|
|
5
|
+
}
|
|
6
|
+
// Persistent delegation grant resource generated by "do not ask again" decisions.
|
|
4
7
|
// This is the durable "delegation" layer (distinct from one-off approvals and append-only audit entries).
|
|
5
|
-
export const
|
|
8
|
+
export const grantResource = podTable('grant', {
|
|
6
9
|
id: id('id'),
|
|
7
10
|
// Table-level type writes odrl:Policy. Keep the project-specific class as
|
|
8
11
|
// an additional rdf:type, so readback treats RDF class membership as multi-valued.
|
|
@@ -21,9 +24,10 @@ export const grantTable = podTable('grant', {
|
|
|
21
24
|
createdAt: timestamp('createdAt').predicate(DCTerms.created).notNull().defaultNow(),
|
|
22
25
|
revokedAt: timestamp('revokedAt').predicate(UDFS.revokedAt),
|
|
23
26
|
}, {
|
|
24
|
-
base: '/settings/autonomy/grants
|
|
25
|
-
sparqlEndpoint: '/settings/autonomy/grants/-/sparql',
|
|
27
|
+
base: '/settings/autonomy/grants.ttl',
|
|
26
28
|
type: ODRL.Policy,
|
|
27
29
|
namespace: ODRL,
|
|
28
|
-
subjectTemplate: '{id}
|
|
30
|
+
subjectTemplate: '#{id}',
|
|
29
31
|
});
|
|
32
|
+
// Compatibility alias. New model code should prefer `grantResource`.
|
|
33
|
+
export const grantTable = grantResource;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare const inboxNotificationTable: 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
|
+
rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", true, true>;
|
|
3
4
|
actor: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
4
5
|
object: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
5
6
|
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { podTable, uri, timestamp, id } from '@undefineds.co/drizzle-solid';
|
|
2
|
-
import { AS, DCTerms } from './namespaces.js';
|
|
2
|
+
import { AS, DCTerms, RDF } from './namespaces.js';
|
|
3
3
|
// Solid inbox notifications (protocol channel)
|
|
4
4
|
export const inboxNotificationTable = podTable('inbox_notification', {
|
|
5
5
|
id: id('id'),
|
|
6
|
+
// Protocol inbox messages are not always Announce. Keep rdf:type writable so
|
|
7
|
+
// app notifications can use as:Announce while other Solid inbox payloads keep their own type.
|
|
8
|
+
rdfType: uri('rdfType').array().predicate(RDF.type).notNull().default([AS.Announce]),
|
|
6
9
|
// Standard ActivityStreams envelope
|
|
7
10
|
actor: uri('actor').predicate(AS.actor),
|
|
8
11
|
object: uri('object').predicate(AS.object).notNull(),
|
|
@@ -10,7 +13,7 @@ export const inboxNotificationTable = podTable('inbox_notification', {
|
|
|
10
13
|
}, {
|
|
11
14
|
base: '/inbox/',
|
|
12
15
|
sparqlEndpoint: '/inbox/-/sparql',
|
|
13
|
-
type: AS.
|
|
16
|
+
type: AS.Activity,
|
|
14
17
|
namespace: AS,
|
|
15
18
|
subjectTemplate: '{id}.ttl',
|
|
16
19
|
});
|
package/dist/index.d.ts
CHANGED
|
@@ -20,11 +20,11 @@ export { settingsTable, SETTING_KEYS, type SettingKey, type SettingsRow, type Se
|
|
|
20
20
|
export { agentTable, type AgentRow, type AgentInsert, type AgentUpdate, } from './agent.schema';
|
|
21
21
|
export { agentRepository } from './agent.repository';
|
|
22
22
|
export { DEFAULT_AGENT_PROVIDERS, type AgentProviderMetadata, type AgentModelOption, } from './agent.providers';
|
|
23
|
-
export { sessionResource, sessionTable, type SessionType, type SessionStatus, type SessionRow, type SessionInsert, type SessionUpdate, } from './session';
|
|
23
|
+
export { sessionResource, sessionTable, buildSessionSubjectPath, type SessionType, type SessionStatus, type SessionRow, type SessionInsert, type SessionUpdate, } from './session';
|
|
24
24
|
export { sessionRepository } from './session.repository';
|
|
25
|
-
export { approvalTable, type ApprovalRow, type ApprovalInsert, type ApprovalUpdate, } from './approval.schema';
|
|
26
|
-
export { auditTable, type AuditRow, type AuditInsert, type AuditUpdate, } from './audit.schema';
|
|
27
|
-
export { grantTable, type GrantRow, type GrantInsert, type GrantUpdate, } from './grant.schema';
|
|
25
|
+
export { approvalResource, approvalTable, buildApprovalSubjectPath, type ApprovalRow, type ApprovalInsert, type ApprovalUpdate, } from './approval.schema';
|
|
26
|
+
export { auditResource, auditTable, buildAuditSubjectPath, type AuditRow, type AuditInsert, type AuditUpdate, } from './audit.schema';
|
|
27
|
+
export { grantResource, grantTable, buildGrantSubjectPath, type GrantRow, type GrantInsert, type GrantUpdate, } from './grant.schema';
|
|
28
28
|
export { inboxNotificationTable, type InboxNotificationRow, type InboxNotificationInsert, type InboxNotificationUpdate, } from './inbox-notification.schema';
|
|
29
29
|
export { ApprovalVocab, AuditVocab, GrantVocab, InboxNotificationVocab } from './vocab/sidecar.vocab';
|
|
30
30
|
export * from './sidecar/sidecar-events';
|
package/dist/index.js
CHANGED
|
@@ -49,12 +49,12 @@ export { DEFAULT_AGENT_PROVIDERS, } from './agent.providers.js';
|
|
|
49
49
|
// 其他模型
|
|
50
50
|
// ============================================
|
|
51
51
|
// Session - 会话管理
|
|
52
|
-
export { sessionResource, sessionTable, } from './session/index.js';
|
|
52
|
+
export { sessionResource, sessionTable, buildSessionSubjectPath, } from './session/index.js';
|
|
53
53
|
export { sessionRepository } from './session.repository.js';
|
|
54
54
|
// Approval / Audit / Grant / Inbox Notification
|
|
55
|
-
export { approvalTable, } from './approval.schema.js';
|
|
56
|
-
export { auditTable, } from './audit.schema.js';
|
|
57
|
-
export { grantTable, } from './grant.schema.js';
|
|
55
|
+
export { approvalResource, approvalTable, buildApprovalSubjectPath, } from './approval.schema.js';
|
|
56
|
+
export { auditResource, auditTable, buildAuditSubjectPath, } from './audit.schema.js';
|
|
57
|
+
export { grantResource, grantTable, buildGrantSubjectPath, } from './grant.schema.js';
|
|
58
58
|
export { inboxNotificationTable, } from './inbox-notification.schema.js';
|
|
59
59
|
// Sidecar vocab + runtime contracts
|
|
60
60
|
export { ApprovalVocab, AuditVocab, GrantVocab, InboxNotificationVocab } from './vocab/sidecar.vocab.js';
|
package/dist/namespaces.js
CHANGED
|
@@ -81,6 +81,7 @@ export const WF = createNamespace('wf', 'http://www.w3.org/2005/01/wf/flow-1.0#'
|
|
|
81
81
|
});
|
|
82
82
|
// Activity Streams 2.0 - W3C standard for social web
|
|
83
83
|
export const AS = createNamespace('as', 'https://www.w3.org/ns/activitystreams#', {
|
|
84
|
+
Activity: 'Activity',
|
|
84
85
|
Announce: 'Announce',
|
|
85
86
|
Public: 'Public',
|
|
86
87
|
audience: 'audience',
|
|
@@ -160,6 +161,7 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
|
|
|
160
161
|
action: 'action',
|
|
161
162
|
actor: 'actor',
|
|
162
163
|
actorRole: 'actorRole',
|
|
164
|
+
entry: 'entry',
|
|
163
165
|
context: 'context',
|
|
164
166
|
policy: 'policy',
|
|
165
167
|
approval: 'approval',
|
package/dist/schema.d.ts
CHANGED
|
@@ -190,7 +190,7 @@ export declare const solidResources: {
|
|
|
190
190
|
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
191
191
|
modifiedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
192
192
|
}>>;
|
|
193
|
-
|
|
193
|
+
approvalResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
194
194
|
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
195
195
|
session: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
196
196
|
toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
@@ -208,21 +208,22 @@ export declare const solidResources: {
|
|
|
208
208
|
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
209
209
|
resolvedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
210
210
|
}>>;
|
|
211
|
-
|
|
211
|
+
auditResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
212
212
|
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
213
213
|
action: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
214
214
|
actor: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
215
215
|
actorRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
216
216
|
onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
217
217
|
session: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
218
|
+
entry: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
218
219
|
toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
220
|
+
toolName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
219
221
|
approval: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
220
|
-
context: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
221
222
|
policy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
222
223
|
policyVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
223
224
|
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
224
225
|
}>>;
|
|
225
|
-
|
|
226
|
+
grantResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
226
227
|
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
227
228
|
rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", true, true>;
|
|
228
229
|
target: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
@@ -237,6 +238,7 @@ export declare const solidResources: {
|
|
|
237
238
|
}>>;
|
|
238
239
|
inboxNotificationTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
239
240
|
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
241
|
+
rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", true, true>;
|
|
240
242
|
actor: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
241
243
|
object: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
242
244
|
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
@@ -459,9 +461,10 @@ export declare const solidSchema: {
|
|
|
459
461
|
actorRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
460
462
|
onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
461
463
|
session: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
464
|
+
entry: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
462
465
|
toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
466
|
+
toolName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
463
467
|
approval: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
464
|
-
context: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
465
468
|
policy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
466
469
|
policyVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
467
470
|
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
@@ -481,6 +484,7 @@ export declare const solidSchema: {
|
|
|
481
484
|
}>>;
|
|
482
485
|
inboxNotificationTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
483
486
|
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
487
|
+
rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", true, true>;
|
|
484
488
|
actor: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
485
489
|
object: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
486
490
|
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
package/dist/schema.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { agentTable } from './agent.schema.js';
|
|
2
|
-
import { approvalTable } from './approval.schema.js';
|
|
3
|
-
import { auditTable } from './audit.schema.js';
|
|
2
|
+
import { approvalResource, approvalTable } from './approval.schema.js';
|
|
3
|
+
import { auditResource, auditTable } from './audit.schema.js';
|
|
4
4
|
import { aiModelTable } from './ai-model.schema.js';
|
|
5
5
|
import { aiProviderTable } from './ai-provider.schema.js';
|
|
6
6
|
import { chatResource, chatTable } from './chat.schema.js';
|
|
@@ -8,7 +8,7 @@ import { contactTable } from './contact.schema.js';
|
|
|
8
8
|
import { credentialTable } from './credential.schema.js';
|
|
9
9
|
import { favoriteTable } from './favorite/favorite.schema.js';
|
|
10
10
|
import { fileTable } from './file/file.schema.js';
|
|
11
|
-
import { grantTable } from './grant.schema.js';
|
|
11
|
+
import { grantResource, grantTable } from './grant.schema.js';
|
|
12
12
|
import { inboxNotificationTable } from './inbox-notification.schema.js';
|
|
13
13
|
import { messageResource, messageTable } from './message.schema.js';
|
|
14
14
|
import { solidProfileTable } from './profile.schema.js';
|
|
@@ -30,9 +30,9 @@ export const solidResources = {
|
|
|
30
30
|
favoriteTable,
|
|
31
31
|
settingsTable,
|
|
32
32
|
// Sidecar collaboration data
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
approvalResource,
|
|
34
|
+
auditResource,
|
|
35
|
+
grantResource,
|
|
36
36
|
inboxNotificationTable,
|
|
37
37
|
};
|
|
38
38
|
// Compatibility schema for existing drizzle-solid call sites.
|
package/dist/session/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { sessionResource, sessionTable, type SessionType, type SessionStatus, type SessionRow, type SessionInsert, type SessionUpdate, } from './session.schema';
|
|
1
|
+
export { sessionResource, sessionTable, buildSessionSubjectPath, type SessionType, type SessionStatus, type SessionRow, type SessionInsert, type SessionUpdate, } from './session.schema';
|
package/dist/session/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { sessionResource, sessionTable, } from './session.schema.js';
|
|
1
|
+
export { sessionResource, sessionTable, buildSessionSubjectPath, } from './session.schema.js';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type SessionType = 'direct' | 'group' | 'imported-readonly';
|
|
2
2
|
export type SessionStatus = 'active' | 'paused' | 'completed' | 'error' | 'archived';
|
|
3
|
+
export declare function buildSessionSubjectPath(sessionId: string, createdAt?: Date | string | number): string;
|
|
3
4
|
/**
|
|
4
5
|
* Runtime / collaboration session resource.
|
|
5
6
|
*
|
|
@@ -10,7 +11,7 @@ export type SessionStatus = 'active' | 'paused' | 'completed' | 'error' | 'archi
|
|
|
10
11
|
* - the durable conversation timeline, which is Thread
|
|
11
12
|
*
|
|
12
13
|
* Storage structure:
|
|
13
|
-
* - Location: /.data/
|
|
14
|
+
* - Location: /.data/sessions/{yyyy}/{MM}.ttl#{id}
|
|
14
15
|
* - Primary use: runtime lifecycle projection for a concrete Thread
|
|
15
16
|
*
|
|
16
17
|
* Contract notes:
|
|
@@ -2,6 +2,13 @@ import { object, podTable, string, timestamp, uri, id, integer } from '@undefine
|
|
|
2
2
|
import { DCTerms, UDFS } from '../namespaces.js';
|
|
3
3
|
import { chatResource } from '../chat.schema.js';
|
|
4
4
|
import { threadResource } from '../thread.schema.js';
|
|
5
|
+
export function buildSessionSubjectPath(sessionId, createdAt = new Date()) {
|
|
6
|
+
const date = createdAt instanceof Date ? createdAt : new Date(createdAt);
|
|
7
|
+
const safeDate = Number.isFinite(date.getTime()) ? date : new Date();
|
|
8
|
+
const yyyy = String(safeDate.getUTCFullYear());
|
|
9
|
+
const mm = String(safeDate.getUTCMonth() + 1).padStart(2, '0');
|
|
10
|
+
return `/.data/sessions/${yyyy}/${mm}.ttl#${encodeURIComponent(sessionId)}`;
|
|
11
|
+
}
|
|
5
12
|
/**
|
|
6
13
|
* Runtime / collaboration session resource.
|
|
7
14
|
*
|
|
@@ -12,7 +19,7 @@ import { threadResource } from '../thread.schema.js';
|
|
|
12
19
|
* - the durable conversation timeline, which is Thread
|
|
13
20
|
*
|
|
14
21
|
* Storage structure:
|
|
15
|
-
* - Location: /.data/
|
|
22
|
+
* - Location: /.data/sessions/{yyyy}/{MM}.ttl#{id}
|
|
16
23
|
* - Primary use: runtime lifecycle projection for a concrete Thread
|
|
17
24
|
*
|
|
18
25
|
* Contract notes:
|
|
@@ -42,11 +49,11 @@ export const sessionResource = podTable('session', {
|
|
|
42
49
|
updatedAt: timestamp('updatedAt').predicate(DCTerms.modified).notNull().defaultNow(),
|
|
43
50
|
archivedAt: timestamp('archivedAt').predicate(UDFS.archivedAt),
|
|
44
51
|
}, {
|
|
45
|
-
base: '/.data/
|
|
46
|
-
sparqlEndpoint: '/.data/
|
|
52
|
+
base: '/.data/sessions/',
|
|
53
|
+
sparqlEndpoint: '/.data/sessions/-/sparql',
|
|
47
54
|
type: UDFS.term('Session'),
|
|
48
55
|
namespace: UDFS,
|
|
49
|
-
subjectTemplate: '{
|
|
56
|
+
subjectTemplate: '{yyyy}/{MM}.ttl#{id}',
|
|
50
57
|
});
|
|
51
58
|
// Compatibility alias. New model code should prefer `sessionResource`.
|
|
52
59
|
export const sessionTable = sessionResource;
|
|
@@ -27,10 +27,11 @@ export const settingsTable = podTable("settings", {
|
|
|
27
27
|
createdAt: timestamp("createdAt").predicate(DCTerms.created).notNull().defaultNow(),
|
|
28
28
|
modifiedAt: timestamp("modifiedAt").predicate(DCTerms.modified).notNull().defaultNow(),
|
|
29
29
|
}, {
|
|
30
|
-
base: "
|
|
31
|
-
sparqlEndpoint: "
|
|
30
|
+
base: "/settings/", // LDP Container
|
|
31
|
+
sparqlEndpoint: "/settings/-/sparql",
|
|
32
32
|
type: SCHEMA.PropertyValue,
|
|
33
33
|
namespace: UDFS,
|
|
34
|
+
subjectTemplate: "{key}.ttl",
|
|
34
35
|
});
|
|
35
36
|
/**
|
|
36
37
|
* 常用设置键定义
|
|
@@ -11,7 +11,7 @@ export type ChatSessionProjection = {
|
|
|
11
11
|
};
|
|
12
12
|
export type ApprovalProjectionInsert = Pick<ApprovalInsert, 'session' | 'toolCallId' | 'toolName' | 'target' | 'action' | 'risk' | 'status' | 'policyVersion'>;
|
|
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' | 'toolCallId' | '
|
|
14
|
+
export type AuditProjectionInsert = Pick<AuditInsert, 'action' | 'actor' | 'actorRole' | 'onBehalfOf' | 'session' | 'entry' | 'toolCallId' | 'toolName' | 'approval' | 'policy' | 'policyVersion'>;
|
|
15
15
|
export type GrantProjectionInsert = Pick<GrantInsert, 'target' | 'action' | 'effect' | 'riskCeiling' | 'decisionBy' | 'decisionRole' | 'onBehalfOf'>;
|
|
16
16
|
export type InboxNotificationProjectionInsert = Pick<InboxNotificationInsert, 'actor' | 'object'>;
|
|
17
17
|
export declare const SidecarEventToPodMapping: {
|
|
@@ -21,9 +21,10 @@ export declare const AuditVocab: {
|
|
|
21
21
|
readonly actorRole: string;
|
|
22
22
|
readonly onBehalfOf: string;
|
|
23
23
|
readonly session: string;
|
|
24
|
+
readonly entry: string;
|
|
24
25
|
readonly toolCallId: string;
|
|
26
|
+
readonly toolName: string;
|
|
25
27
|
readonly approval: string;
|
|
26
|
-
readonly context: string;
|
|
27
28
|
readonly policy: string;
|
|
28
29
|
readonly policyVersion: string;
|
|
29
30
|
readonly createdAt: string;
|
|
@@ -22,9 +22,10 @@ export const AuditVocab = {
|
|
|
22
22
|
actorRole: UDFS.actorRole,
|
|
23
23
|
onBehalfOf: UDFS.onBehalfOf,
|
|
24
24
|
session: UDFS.session,
|
|
25
|
+
entry: UDFS.entry,
|
|
25
26
|
toolCallId: UDFS.toolCallId,
|
|
27
|
+
toolName: UDFS.toolName,
|
|
26
28
|
approval: UDFS.approval,
|
|
27
|
-
context: UDFS.context,
|
|
28
29
|
policy: UDFS.policy,
|
|
29
30
|
policyVersion: UDFS.policyVersion,
|
|
30
31
|
createdAt: DCTerms.created,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@undefineds.co/models",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.14",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -36,13 +36,21 @@
|
|
|
36
36
|
"types": "./dist/profile.schema.d.ts",
|
|
37
37
|
"default": "./dist/profile.schema.js"
|
|
38
38
|
},
|
|
39
|
+
"./vocab": {
|
|
40
|
+
"types": "./dist/vocab/index.d.ts",
|
|
41
|
+
"default": "./dist/vocab/index.js"
|
|
42
|
+
},
|
|
43
|
+
"./vocab/sidecar": {
|
|
44
|
+
"types": "./dist/vocab/sidecar.vocab.d.ts",
|
|
45
|
+
"default": "./dist/vocab/sidecar.vocab.js"
|
|
46
|
+
},
|
|
39
47
|
"./watch": {
|
|
40
48
|
"types": "./dist/watch/index.d.ts",
|
|
41
49
|
"default": "./dist/watch/index.js"
|
|
42
50
|
}
|
|
43
51
|
},
|
|
44
52
|
"scripts": {
|
|
45
|
-
"build": "tsc -p tsconfig.json",
|
|
53
|
+
"build": "tsc -p tsconfig.json && node scripts/fix-dist-esm.mjs",
|
|
46
54
|
"lint": "echo \"lint not configured\"",
|
|
47
55
|
"pack:release": "node scripts/pack-release.mjs",
|
|
48
56
|
"sync:discovery:vercel": "node --experimental-strip-types scripts/sync-discovery-vercel.ts",
|