@undefineds.co/models 0.2.14 → 0.2.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -5
- package/dist/agent.providers.js +11 -0
- package/dist/ai-config/index.d.ts +7 -0
- package/dist/ai-config/index.js +13 -0
- package/dist/approval.schema.d.ts +6 -0
- package/dist/approval.schema.js +3 -0
- package/dist/discovery/models.json +29 -0
- package/dist/discovery/providers.json +10 -0
- package/dist/grant.schema.d.ts +28 -0
- package/dist/grant.schema.js +22 -5
- package/dist/index.d.ts +1 -1
- package/dist/namespaces.js +11 -0
- package/dist/schema.d.ts +34 -0
- package/dist/sidecar/persistence-mapping.d.ts +2 -2
- package/dist/sidecar/sidecar-events.d.ts +186 -0
- package/dist/sidecar/sidecar-events.js +10 -0
- package/dist/vocab/sidecar.vocab.d.ts +17 -0
- package/dist/vocab/sidecar.vocab.js +17 -0
- package/dist/watch/index.d.ts +55 -0
- package/dist/watch/index.js +359 -12
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -54,6 +54,14 @@ LinX 的所有数据存储在 Solid Pod 中,使用标准的 RDF 格式。本
|
|
|
54
54
|
- Pod schema 使用 `chat`、`thread` 这类 URI-valued RDF relation 字段。
|
|
55
55
|
- `chatId`、`threadId` 只允许作为 UI 状态、函数参数、runtime protocol 字段或 metadata 中的兼容信息,不允许作为持久 RDF link 字段。
|
|
56
56
|
- 新增 shared model 代码优先使用 `chatResource`、`threadResource`、`messageResource`、`sessionResource` 等 Solid resource 命名;`*Table` 只作为兼容 alias 逐步退出。
|
|
57
|
+
- 如果壳层需要新的查询、upsert、resolve-by-uri、审计或审批状态变更能力,优先在本包新增 repository/helper 和 tests;不要在 CLI/App 中复制 predicate、subject template、Turtle 读写或 shared 状态机。
|
|
58
|
+
- `approval` / `grant` / `audit` / `inboxNotification` / `session` 等跨端控制面也属于本包的 shared resource 语义。CLI/App 只负责把 Pi/Codex/Claude 等运行时事件映射成本包定义的 insert/update DTO,不能另建一套存储路径或审批策略。
|
|
59
|
+
- approval 的倒计时和可选决策也属于 shared resource 语义:使用 `approvalResource.expiresAt` 表示截止时间,使用 `approvalResource.approvalOptions` 存储上游原生协议给出的可选决策(例如 `allow_once` / `allow_always` / `reject_once`)。CLI/App 不得各自用私有 predicate 或本地状态推断这些字段。
|
|
60
|
+
- grant 是可维护的 LLM Wiki 文档资源,不是一次请求的 fingerprint。`grantResource` 使用 `/settings/autonomy/grants/{id}.ttl`,文档 URI 本身就是 RDF subject;通过 `title/summary/body/schema/pageKind/wikiStatus/tags/source/sourceHash/compiledAt/compiledFrom/related/context` 描述页面语义、来源和上下文。
|
|
61
|
+
- `grant.schema` 使用 `dcterms:conformsTo` 指向 Solid schema/shape URI,例如 `/settings/autonomy/schema/grant.ttl#GrantWikiPage`;它不是 `path`/`wikiPath` 字符串,TTL wiki page 也不需要 `.meta` subject。
|
|
62
|
+
- `grant.target`、`grant.action`、`grant.riskCeiling` 只用于候选筛选或排序,不得作为最终自动审批判定。最终是否覆盖必须看 wiki page 的 `body/summary/tags/source/provenance/context` 与当前请求的语义匹配结果。
|
|
63
|
+
- CLI/App 不得为 shared 控制面字段自定义业务 predicate。新增 approval/grant/audit 字段必须先在本包的 namespace、vocab、schema 和 tests 中定义。
|
|
64
|
+
- structured user-input 与 approval 一样属于 watch 共享协议:AI secretary 只能在答案能从请求上下文明确推出时代答,否则必须回到人工输入。
|
|
57
65
|
|
|
58
66
|
---
|
|
59
67
|
|
|
@@ -587,8 +595,3 @@ MIT License
|
|
|
587
595
|
|
|
588
596
|
|
|
589
597
|
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
package/dist/agent.providers.js
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
export const DEFAULT_AGENT_PROVIDERS = [
|
|
2
|
+
{
|
|
3
|
+
slug: 'undefineds',
|
|
4
|
+
displayName: 'undefineds',
|
|
5
|
+
baseUrl: 'https://api.undefineds.co/v1',
|
|
6
|
+
homepage: 'https://undefineds.co/linx',
|
|
7
|
+
logoUrl: 'https://undefineds.co/favicon.ico',
|
|
8
|
+
models: [
|
|
9
|
+
{ id: 'linx-lite', displayName: 'LinX Lite' },
|
|
10
|
+
{ id: 'linx', displayName: 'LinX' },
|
|
11
|
+
],
|
|
12
|
+
},
|
|
2
13
|
{
|
|
3
14
|
slug: 'openai',
|
|
4
15
|
displayName: 'OpenAI',
|
|
@@ -43,6 +43,13 @@ export interface AIConfigMutationPlan {
|
|
|
43
43
|
modelUpserts: AIModelInsert[];
|
|
44
44
|
modelDeleteIds: string[];
|
|
45
45
|
}
|
|
46
|
+
export declare const UNDEFINEDS_AI_PROVIDER_ID = "undefineds";
|
|
47
|
+
export declare const UNDEFINEDS_AI_PROVIDER_DISPLAY_NAME = "undefineds";
|
|
48
|
+
export declare const UNDEFINEDS_AI_BASE_URL = "https://api.undefineds.co/v1";
|
|
49
|
+
export declare const LINX_LITE_MODEL_ID = "linx-lite";
|
|
50
|
+
export declare const LINX_MODEL_ID = "linx";
|
|
51
|
+
export declare const DEFAULT_LINX_MODEL_ID = "linx-lite";
|
|
52
|
+
export declare const UNDEFINEDS_AI_MODEL_IDS: readonly ["linx-lite", "linx"];
|
|
46
53
|
export declare function getAIConfigProviderCatalog(): readonly AIConfigProviderCatalogEntry[];
|
|
47
54
|
export declare function getAIConfigProviderMetadata(providerId: string): AIConfigProviderCatalogEntry;
|
|
48
55
|
export declare function normalizeAIConfigResourceId(raw?: string | null): string;
|
package/dist/ai-config/index.js
CHANGED
|
@@ -1,4 +1,17 @@
|
|
|
1
|
+
export const UNDEFINEDS_AI_PROVIDER_ID = 'undefineds';
|
|
2
|
+
export const UNDEFINEDS_AI_PROVIDER_DISPLAY_NAME = 'undefineds';
|
|
3
|
+
export const UNDEFINEDS_AI_BASE_URL = 'https://api.undefineds.co/v1';
|
|
4
|
+
export const LINX_LITE_MODEL_ID = 'linx-lite';
|
|
5
|
+
export const LINX_MODEL_ID = 'linx';
|
|
6
|
+
export const DEFAULT_LINX_MODEL_ID = LINX_LITE_MODEL_ID;
|
|
7
|
+
export const UNDEFINEDS_AI_MODEL_IDS = [LINX_LITE_MODEL_ID, LINX_MODEL_ID];
|
|
1
8
|
const AI_CONFIG_PROVIDER_CATALOG = [
|
|
9
|
+
{
|
|
10
|
+
id: UNDEFINEDS_AI_PROVIDER_ID,
|
|
11
|
+
displayName: UNDEFINEDS_AI_PROVIDER_DISPLAY_NAME,
|
|
12
|
+
defaultBaseUrl: UNDEFINEDS_AI_BASE_URL,
|
|
13
|
+
defaultModels: [...UNDEFINEDS_AI_MODEL_IDS],
|
|
14
|
+
},
|
|
2
15
|
{
|
|
3
16
|
id: 'openai',
|
|
4
17
|
displayName: 'OpenAI',
|
|
@@ -13,8 +13,11 @@ export declare const approvalResource: import("@undefineds.co/drizzle-solid/dist
|
|
|
13
13
|
decisionRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
14
14
|
onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
15
15
|
reason: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
16
|
+
context: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
17
|
+
approvalOptions: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
16
18
|
policyVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
17
19
|
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
20
|
+
expiresAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
18
21
|
resolvedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
19
22
|
}>>;
|
|
20
23
|
export declare const approvalTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
@@ -31,8 +34,11 @@ export declare const approvalTable: import("@undefineds.co/drizzle-solid/dist/co
|
|
|
31
34
|
decisionRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
32
35
|
onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
33
36
|
reason: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
37
|
+
context: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
38
|
+
approvalOptions: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
34
39
|
policyVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
35
40
|
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
41
|
+
expiresAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
36
42
|
resolvedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
37
43
|
}>>;
|
|
38
44
|
export type ApprovalRow = typeof approvalResource.$inferSelect;
|
package/dist/approval.schema.js
CHANGED
|
@@ -28,9 +28,12 @@ export const approvalResource = podTable('approval', {
|
|
|
28
28
|
decisionRole: string('decisionRole').predicate(UDFS.decisionRole),
|
|
29
29
|
onBehalfOf: uri('onBehalfOf').predicate(UDFS.onBehalfOf),
|
|
30
30
|
reason: text('reason').predicate(UDFS.reason),
|
|
31
|
+
context: text('context').predicate(UDFS.context),
|
|
32
|
+
approvalOptions: text('approvalOptions').predicate(UDFS.approvalOptions),
|
|
31
33
|
policyVersion: string('policyVersion').predicate(UDFS.policyVersion),
|
|
32
34
|
// Timestamps
|
|
33
35
|
createdAt: timestamp('createdAt').predicate(DCTerms.created).notNull().defaultNow(),
|
|
36
|
+
expiresAt: timestamp('expiresAt').predicate(UDFS.expiresAt),
|
|
34
37
|
resolvedAt: timestamp('resolvedAt').predicate(UDFS.resolvedAt),
|
|
35
38
|
}, {
|
|
36
39
|
base: '/.data/approvals/',
|
|
@@ -2,6 +2,35 @@
|
|
|
2
2
|
"version": "1.0.0",
|
|
3
3
|
"updatedAt": "2026-03-16",
|
|
4
4
|
"models": [
|
|
5
|
+
{
|
|
6
|
+
"id": "linx-lite",
|
|
7
|
+
"provider": "undefineds",
|
|
8
|
+
"displayName": "LinX Lite",
|
|
9
|
+
"description": "Fast undefineds model for LinX companion, routing, and lightweight assistant tasks.",
|
|
10
|
+
"contextLength": 1000000,
|
|
11
|
+
"maxOutputTokens": 8192,
|
|
12
|
+
"capabilities": [
|
|
13
|
+
"chat",
|
|
14
|
+
"function-calling",
|
|
15
|
+
"streaming",
|
|
16
|
+
"json-mode"
|
|
17
|
+
],
|
|
18
|
+
"isDefault": true
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "linx",
|
|
22
|
+
"provider": "undefineds",
|
|
23
|
+
"displayName": "LinX",
|
|
24
|
+
"description": "undefineds general LinX assistant model.",
|
|
25
|
+
"contextLength": 1000000,
|
|
26
|
+
"maxOutputTokens": 8192,
|
|
27
|
+
"capabilities": [
|
|
28
|
+
"chat",
|
|
29
|
+
"function-calling",
|
|
30
|
+
"streaming",
|
|
31
|
+
"json-mode"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
5
34
|
{
|
|
6
35
|
"id": "anthropic/claude-3.5-sonnet",
|
|
7
36
|
"provider": "anthropic",
|
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
"version": "1.0.0",
|
|
3
3
|
"updatedAt": "2026-03-16",
|
|
4
4
|
"providers": [
|
|
5
|
+
{
|
|
6
|
+
"slug": "undefineds",
|
|
7
|
+
"displayName": "undefineds",
|
|
8
|
+
"baseUrl": "https://api.undefineds.co/v1",
|
|
9
|
+
"homepage": "https://undefineds.co/linx",
|
|
10
|
+
"logoUrl": "https://undefineds.co/favicon.ico",
|
|
11
|
+
"description": "undefineds LinX 模型服务",
|
|
12
|
+
"supportedFeatures": ["chat", "function-calling", "streaming"],
|
|
13
|
+
"authType": "bearer"
|
|
14
|
+
},
|
|
5
15
|
{
|
|
6
16
|
"slug": "openai",
|
|
7
17
|
"displayName": "OpenAI",
|
package/dist/grant.schema.d.ts
CHANGED
|
@@ -4,8 +4,22 @@ export declare const grantResource: import("@undefineds.co/drizzle-solid/dist/co
|
|
|
4
4
|
rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", true, true>;
|
|
5
5
|
target: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
6
6
|
action: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
7
|
+
title: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
8
|
+
summary: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
9
|
+
body: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
10
|
+
schema: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
11
|
+
pageKind: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
12
|
+
wikiStatus: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
13
|
+
tags: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
14
|
+
source: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
15
|
+
sourceHash: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
16
|
+
compiledAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
17
|
+
compiledFrom: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
|
|
18
|
+
related: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
|
|
7
19
|
effect: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
8
20
|
riskCeiling: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
21
|
+
policy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
22
|
+
context: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
9
23
|
decisionBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
10
24
|
decisionRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
11
25
|
onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
@@ -17,8 +31,22 @@ export declare const grantTable: import("@undefineds.co/drizzle-solid/dist/core/
|
|
|
17
31
|
rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", true, true>;
|
|
18
32
|
target: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
19
33
|
action: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
34
|
+
title: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
35
|
+
summary: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
36
|
+
body: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
37
|
+
schema: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
38
|
+
pageKind: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
39
|
+
wikiStatus: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
40
|
+
tags: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
41
|
+
source: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
42
|
+
sourceHash: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
43
|
+
compiledAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
44
|
+
compiledFrom: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
|
|
45
|
+
related: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
|
|
20
46
|
effect: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
21
47
|
riskCeiling: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
48
|
+
policy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
49
|
+
context: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
22
50
|
decisionBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
23
51
|
decisionRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
24
52
|
onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
package/dist/grant.schema.js
CHANGED
|
@@ -1,21 +1,37 @@
|
|
|
1
|
-
import { podTable, uri, string, timestamp, id } from '@undefineds.co/drizzle-solid';
|
|
1
|
+
import { podTable, uri, string, text, 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
|
|
4
|
+
return `/settings/autonomy/grants/${encodeURIComponent(grantId)}.ttl`;
|
|
5
5
|
}
|
|
6
6
|
// Persistent delegation grant resource generated by "do not ask again" decisions.
|
|
7
7
|
// This is the durable "delegation" layer (distinct from one-off approvals and append-only audit entries).
|
|
8
8
|
export const grantResource = podTable('grant', {
|
|
9
9
|
id: id('id'),
|
|
10
|
-
//
|
|
10
|
+
// Resource-level type writes odrl:Policy. Keep the project-specific class as
|
|
11
11
|
// an additional rdf:type, so readback treats RDF class membership as multi-valued.
|
|
12
12
|
rdfType: uri('rdfType').array().predicate(RDF.type).notNull().default([UDFS.AutonomyGrant]),
|
|
13
13
|
// Minimal ODRL surface (CP0): allow/deny action on target.
|
|
14
14
|
target: uri('target').predicate(ODRL.target).notNull(),
|
|
15
15
|
action: uri('action').predicate(ODRL.action).notNull(),
|
|
16
|
+
// Pod version of the LLM Wiki page contract. The grant remains an ODRL
|
|
17
|
+
// policy, but its maintainable surface is a wiki page with provenance.
|
|
18
|
+
title: string('title').predicate(DCTerms.title),
|
|
19
|
+
summary: text('summary').predicate(UDFS.summary),
|
|
20
|
+
body: text('body').predicate(UDFS.body),
|
|
21
|
+
schema: uri('schema').predicate(DCTerms.conformsTo),
|
|
22
|
+
pageKind: string('pageKind').predicate(UDFS.pageKind),
|
|
23
|
+
wikiStatus: string('wikiStatus').predicate(UDFS.status),
|
|
24
|
+
tags: text('tags').predicate(UDFS.tags),
|
|
25
|
+
source: string('source').predicate(UDFS.source),
|
|
26
|
+
sourceHash: string('sourceHash').predicate(UDFS.sourceHash),
|
|
27
|
+
compiledAt: timestamp('compiledAt').predicate(UDFS.compiledAt),
|
|
28
|
+
compiledFrom: uri('compiledFrom').array().predicate(UDFS.compiledFrom),
|
|
29
|
+
related: uri('related').array().predicate(UDFS.related),
|
|
16
30
|
// Extensions
|
|
17
31
|
effect: string('effect').predicate(UDFS.effect).notNull(),
|
|
18
32
|
riskCeiling: string('riskCeiling').predicate(UDFS.riskCeiling),
|
|
33
|
+
policy: text('policy').predicate(UDFS.policy),
|
|
34
|
+
context: text('context').predicate(UDFS.context),
|
|
19
35
|
// Delegation identity (WebID semantics)
|
|
20
36
|
decisionBy: uri('decisionBy').predicate(UDFS.decisionBy).notNull(),
|
|
21
37
|
decisionRole: string('decisionRole').predicate(UDFS.decisionRole).notNull(),
|
|
@@ -24,10 +40,11 @@ export const grantResource = podTable('grant', {
|
|
|
24
40
|
createdAt: timestamp('createdAt').predicate(DCTerms.created).notNull().defaultNow(),
|
|
25
41
|
revokedAt: timestamp('revokedAt').predicate(UDFS.revokedAt),
|
|
26
42
|
}, {
|
|
27
|
-
base: '/settings/autonomy/grants
|
|
43
|
+
base: '/settings/autonomy/grants/',
|
|
44
|
+
sparqlEndpoint: '/settings/autonomy/grants/-/sparql',
|
|
28
45
|
type: ODRL.Policy,
|
|
29
46
|
namespace: ODRL,
|
|
30
|
-
subjectTemplate: '
|
|
47
|
+
subjectTemplate: '{id}.ttl',
|
|
31
48
|
});
|
|
32
49
|
// Compatibility alias. New model code should prefer `grantResource`.
|
|
33
50
|
export const grantTable = grantResource;
|
package/dist/index.d.ts
CHANGED
|
@@ -35,7 +35,7 @@ export { credentialTable, type CredentialRow, type CredentialInsert, type Creden
|
|
|
35
35
|
export { aiProviderTable, type AIProviderRow, type AIProviderInsert, type AIProviderUpdate, } from "./ai-provider.schema";
|
|
36
36
|
export { aiModelTable, type AIModelRow, type AIModelInsert, type AIModelUpdate, } from "./ai-model.schema";
|
|
37
37
|
export { aiConfigModelUri, aiConfigProviderUri, buildAIConfigMutationPlan, buildAIConfigProviderStateMap, getAIConfigDefaultBaseUrl, getAIConfigProviderCatalog, getAIConfigProviderFamilyIds, getAIConfigProviderMetadata, getDefaultAIConfigCredentialId, normalizeAIConfigProviderId, normalizeAIConfigResourceId, sameAIConfigProviderFamily, type AIConfigModel, type AIConfigMutationPlan, type AIConfigProviderCatalogEntry, type AIConfigProviderState, type AIConfigUpdate, type BuildAIConfigProviderStateMapOptions, } from './ai-config';
|
|
38
|
-
export { buildAcpPermissionResponse, buildWatchThreadMetadata, buildWatchTranscriptMessages, buildWatchUserInputResponse, createWatchSessionId, detectWatchAuthFailure, formatWatchAutoFallbackMessage, formatWatchBackendAuthMessage, extractWatchSessionIdFromJsonLine, getWatchArchiveRelativePaths, getWatchAuthLoginCommand, looksLikeWatchAuthFailureText, normalizeAcpInteractionRequest, normalizeAcpRequest, normalizeAcpSessionNotification, normalizeCodexAppServerNotification, normalizeCodexAppServerRequest, normalizeWatchCredentialSource, parseWatchClaudeAuthStatus, parseWatchJsonLine, parseWatchJsonProtocolLine, resolveWatchAutoApprovalDecision, resolveWatchCredentialSourceResolution, resolveWatchInteractionAutoResponse, resolveWatchQuestionAnswer, shouldAttemptCloudCredentialProbe, WATCH_EVENTS_FILE_NAME, WATCH_HOME_DIRNAME, WATCH_SESSIONS_DIRNAME, WATCH_SESSION_FILE_NAME, type WatchApprovalDecision, type WatchApprovalRequest, type CreateWatchSessionIdOptions, type WatchAuthFailure, type WatchAuthState, type WatchAuthStatus, type WatchArchiveRelativePaths, type WatchBackend, type WatchCloudCredentialProbe, type WatchCloudCredentialProbeStatus, type WatchCredentialSource, type WatchCredentialSourceResolution, type WatchEventLogEntry, type WatchMode, type WatchNormalizedEvent, type WatchOutputStream, type WatchResolvedCredentialSource, type WatchRuntime, type WatchSessionRecord, type WatchSessionStatus, type WatchThreadMetadata, type WatchTranscriptMessage, type WatchTranscriptMessageRole, } from './watch';
|
|
38
|
+
export { buildAcpPermissionResponse, buildWatchThreadMetadata, buildWatchTranscriptMessages, buildWatchUserInputResponse, createWatchSessionId, detectWatchAuthFailure, formatWatchAutoFallbackMessage, formatWatchBackendAuthMessage, extractWatchSessionIdFromJsonLine, getWatchArchiveRelativePaths, getWatchAuthLoginCommand, looksLikeWatchAuthFailureText, normalizeAcpInteractionRequest, normalizeAcpRequest, normalizeAcpSessionNotification, normalizeCodexAppServerNotification, normalizeCodexAppServerRequest, normalizeWatchCredentialSource, parseWatchClaudeAuthStatus, parseWatchJsonLine, parseWatchJsonProtocolLine, resolveWatchAutoApprovalDecision, resolveWatchCredentialSourceResolution, resolveWatchInteractionAutoResponse, resolveWatchQuestionAnswer, shouldAttemptCloudCredentialProbe, WATCH_EVENTS_FILE_NAME, WATCH_HOME_DIRNAME, WATCH_SESSIONS_DIRNAME, WATCH_SESSION_FILE_NAME, type WatchApprovalDecision, type WatchApprovalRequest, type CreateWatchSessionIdOptions, type WatchAuthFailure, type WatchAuthState, type WatchAuthStatus, type WatchArchiveRelativePaths, type WatchBackend, type WatchCloudCredentialProbe, type WatchCloudCredentialProbeStatus, type WatchCredentialSource, type WatchCredentialSourceResolution, type WatchEventLogEntry, type WatchMode, type WatchNormalizedEvent, type WatchOutputStream, type WatchResolvedCredentialSource, type WatchRuntime, type WatchSessionRecord, type WatchSessionStatus, type WatchThreadMetadata, type WatchTranscriptMessage, type WatchTranscriptMessageRole, type WatchTranscriptMessageSource, } from './watch';
|
|
39
39
|
export { applySolidComunicaPatches, } from './comunica-patches';
|
|
40
40
|
export { createRepositoryDescriptor, definePodRepository, findPodRowByStorageId, initSolidTables, resolveRowId, resolvePodUri, whereByPodStorageId, type AnyPodTable, type PodRepositoryDescriptor, type RepositoryCacheOptions, type RepositoryInvalidations, type RepositoryScope, type SolidDatabase, } from './repository';
|
|
41
41
|
export { importJobSchema } from './import';
|
package/dist/namespaces.js
CHANGED
|
@@ -164,8 +164,19 @@ export const UDFS = createNamespace('udfs', 'https://undefineds.co/ns#', {
|
|
|
164
164
|
entry: 'entry',
|
|
165
165
|
context: 'context',
|
|
166
166
|
policy: 'policy',
|
|
167
|
+
pageKind: 'pageKind',
|
|
168
|
+
summary: 'summary',
|
|
169
|
+
body: 'body',
|
|
170
|
+
tags: 'tags',
|
|
171
|
+
source: 'source',
|
|
172
|
+
sourceHash: 'sourceHash',
|
|
173
|
+
compiledAt: 'compiledAt',
|
|
174
|
+
compiledFrom: 'compiledFrom',
|
|
175
|
+
related: 'related',
|
|
167
176
|
approval: 'approval',
|
|
177
|
+
approvalOptions: 'approvalOptions',
|
|
168
178
|
effect: 'effect',
|
|
179
|
+
expiresAt: 'expiresAt',
|
|
169
180
|
riskCeiling: 'riskCeiling',
|
|
170
181
|
revokedAt: 'revokedAt',
|
|
171
182
|
archivedAt: 'archivedAt',
|
package/dist/schema.d.ts
CHANGED
|
@@ -204,8 +204,11 @@ export declare const solidResources: {
|
|
|
204
204
|
decisionRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
205
205
|
onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
206
206
|
reason: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
207
|
+
context: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
208
|
+
approvalOptions: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
207
209
|
policyVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
208
210
|
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
211
|
+
expiresAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
209
212
|
resolvedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
210
213
|
}>>;
|
|
211
214
|
auditResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
@@ -228,8 +231,22 @@ export declare const solidResources: {
|
|
|
228
231
|
rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", true, true>;
|
|
229
232
|
target: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
230
233
|
action: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
234
|
+
title: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
235
|
+
summary: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
236
|
+
body: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
237
|
+
schema: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
238
|
+
pageKind: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
239
|
+
wikiStatus: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
240
|
+
tags: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
241
|
+
source: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
242
|
+
sourceHash: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
243
|
+
compiledAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
244
|
+
compiledFrom: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
|
|
245
|
+
related: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
|
|
231
246
|
effect: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
232
247
|
riskCeiling: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
248
|
+
policy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
249
|
+
context: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
233
250
|
decisionBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
234
251
|
decisionRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
235
252
|
onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
@@ -450,8 +467,11 @@ export declare const solidSchema: {
|
|
|
450
467
|
decisionRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
451
468
|
onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
452
469
|
reason: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
470
|
+
context: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
471
|
+
approvalOptions: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
453
472
|
policyVersion: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
454
473
|
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
474
|
+
expiresAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
455
475
|
resolvedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
456
476
|
}>>;
|
|
457
477
|
auditTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
@@ -474,8 +494,22 @@ export declare const solidSchema: {
|
|
|
474
494
|
rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", true, true>;
|
|
475
495
|
target: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
476
496
|
action: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
497
|
+
title: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
498
|
+
summary: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
499
|
+
body: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
500
|
+
schema: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
501
|
+
pageKind: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
502
|
+
wikiStatus: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
503
|
+
tags: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
504
|
+
source: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
505
|
+
sourceHash: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
506
|
+
compiledAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
507
|
+
compiledFrom: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
|
|
508
|
+
related: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
|
|
477
509
|
effect: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
478
510
|
riskCeiling: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
511
|
+
policy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
512
|
+
context: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
479
513
|
decisionBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
480
514
|
decisionRole: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
481
515
|
onBehalfOf: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
@@ -9,10 +9,10 @@ export type ChatSessionProjection = {
|
|
|
9
9
|
policy?: string;
|
|
10
10
|
policyVersion?: string;
|
|
11
11
|
};
|
|
12
|
-
export type ApprovalProjectionInsert = Pick<ApprovalInsert, 'session' | 'toolCallId' | 'toolName' | 'target' | 'action' | 'risk' | 'status' | 'policyVersion'>;
|
|
12
|
+
export type ApprovalProjectionInsert = Pick<ApprovalInsert, 'session' | '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
14
|
export type AuditProjectionInsert = Pick<AuditInsert, 'action' | 'actor' | 'actorRole' | 'onBehalfOf' | 'session' | 'entry' | 'toolCallId' | 'toolName' | 'approval' | 'policy' | 'policyVersion'>;
|
|
15
|
-
export type GrantProjectionInsert = Pick<GrantInsert, 'target' | 'action' | 'effect' | 'riskCeiling' | 'decisionBy' | 'decisionRole' | 'onBehalfOf'>;
|
|
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: {
|
|
18
18
|
readonly tool_call_waiting_approval: {
|