@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 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
-
@@ -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;
@@ -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;
@@ -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",
@@ -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>;
@@ -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.ttl#${encodeURIComponent(grantId)}`;
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
- // Table-level type writes odrl:Policy. Keep the project-specific class as
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.ttl',
43
+ base: '/settings/autonomy/grants/',
44
+ sparqlEndpoint: '/settings/autonomy/grants/-/sparql',
28
45
  type: ODRL.Policy,
29
46
  namespace: ODRL,
30
- subjectTemplate: '#{id}',
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';
@@ -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: {