@apart-tech/intelligence-core 1.0.1 → 1.0.3

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.
Files changed (54) hide show
  1. package/dist/config/index.d.ts.map +1 -1
  2. package/dist/config/index.js +19 -2
  3. package/dist/config/index.js.map +1 -1
  4. package/dist/db/tenant.d.ts.map +1 -1
  5. package/dist/db/tenant.js +2 -0
  6. package/dist/db/tenant.js.map +1 -1
  7. package/dist/index.d.ts +10 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +5 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/providers/batching.d.ts +14 -0
  12. package/dist/providers/batching.d.ts.map +1 -0
  13. package/dist/providers/batching.js +82 -0
  14. package/dist/providers/batching.js.map +1 -0
  15. package/dist/providers/cache.d.ts +30 -0
  16. package/dist/providers/cache.d.ts.map +1 -0
  17. package/dist/providers/cache.js +171 -0
  18. package/dist/providers/cache.js.map +1 -0
  19. package/dist/providers/index.d.ts +13 -3
  20. package/dist/providers/index.d.ts.map +1 -1
  21. package/dist/providers/index.js +75 -8
  22. package/dist/providers/index.js.map +1 -1
  23. package/dist/providers/ollama.d.ts +11 -0
  24. package/dist/providers/ollama.d.ts.map +1 -0
  25. package/dist/providers/ollama.js +39 -0
  26. package/dist/providers/ollama.js.map +1 -0
  27. package/dist/providers/openai.d.ts +4 -2
  28. package/dist/providers/openai.d.ts.map +1 -1
  29. package/dist/providers/openai.js +29 -20
  30. package/dist/providers/openai.js.map +1 -1
  31. package/dist/providers/retry.d.ts +8 -0
  32. package/dist/providers/retry.d.ts.map +1 -0
  33. package/dist/providers/retry.js +55 -0
  34. package/dist/providers/retry.js.map +1 -0
  35. package/dist/providers/voyage.d.ts +11 -0
  36. package/dist/providers/voyage.d.ts.map +1 -0
  37. package/dist/providers/voyage.js +43 -0
  38. package/dist/providers/voyage.js.map +1 -0
  39. package/dist/services/context-service.d.ts +5 -1
  40. package/dist/services/context-service.d.ts.map +1 -1
  41. package/dist/services/context-service.js +30 -1
  42. package/dist/services/context-service.js.map +1 -1
  43. package/dist/services/node-service.d.ts +16 -0
  44. package/dist/services/node-service.d.ts.map +1 -1
  45. package/dist/services/node-service.js +53 -0
  46. package/dist/services/node-service.js.map +1 -1
  47. package/dist/services/workspace-service.d.ts +55 -0
  48. package/dist/services/workspace-service.d.ts.map +1 -0
  49. package/dist/services/workspace-service.js +124 -0
  50. package/dist/services/workspace-service.js.map +1 -0
  51. package/dist/types/index.d.ts +27 -2
  52. package/dist/types/index.d.ts.map +1 -1
  53. package/package.json +1 -1
  54. package/prisma/schema.prisma +37 -4
@@ -0,0 +1,124 @@
1
+ import { SINGLE_TENANT_ORG_ID } from "../db/tenant.js";
2
+ export class WorkspaceService {
3
+ db;
4
+ orgId;
5
+ constructor(db, tenantCtx) {
6
+ this.db = db;
7
+ this.orgId = tenantCtx?.organizationId ?? SINGLE_TENANT_ORG_ID;
8
+ }
9
+ async create(input) {
10
+ return this.db.workspace.create({
11
+ data: {
12
+ name: input.name,
13
+ slug: input.slug,
14
+ description: input.description ?? "",
15
+ domainSlugs: input.domainSlugs ?? [],
16
+ nodeTypes: input.nodeTypes ?? [],
17
+ tags: input.tags ?? [],
18
+ maxDepth: input.maxDepth ?? null,
19
+ maxNodes: input.maxNodes ?? null,
20
+ includeDrafts: input.includeDrafts ?? false,
21
+ systemPrompt: input.systemPrompt ?? "",
22
+ createdBy: input.createdBy,
23
+ organizationId: this.orgId,
24
+ },
25
+ });
26
+ }
27
+ async update(id, input) {
28
+ // Build update data, only include fields that are provided
29
+ const data = { updatedAt: new Date() };
30
+ if (input.name !== undefined)
31
+ data.name = input.name;
32
+ if (input.description !== undefined)
33
+ data.description = input.description;
34
+ if (input.domainSlugs !== undefined)
35
+ data.domainSlugs = input.domainSlugs;
36
+ if (input.nodeTypes !== undefined)
37
+ data.nodeTypes = input.nodeTypes;
38
+ if (input.tags !== undefined)
39
+ data.tags = input.tags;
40
+ if (input.maxDepth !== undefined)
41
+ data.maxDepth = input.maxDepth;
42
+ if (input.maxNodes !== undefined)
43
+ data.maxNodes = input.maxNodes;
44
+ if (input.includeDrafts !== undefined)
45
+ data.includeDrafts = input.includeDrafts;
46
+ if (input.systemPrompt !== undefined)
47
+ data.systemPrompt = input.systemPrompt;
48
+ return this.db.workspace.update({
49
+ where: { id },
50
+ data,
51
+ });
52
+ }
53
+ async delete(id) {
54
+ await this.db.workspace.delete({ where: { id } });
55
+ return true;
56
+ }
57
+ async getBySlug(slug) {
58
+ return this.db.workspace.findUnique({
59
+ where: { slug_organizationId: { slug, organizationId: this.orgId } },
60
+ });
61
+ }
62
+ async getById(id) {
63
+ return this.db.workspace.findUnique({ where: { id } });
64
+ }
65
+ async list() {
66
+ return this.db.workspace.findMany({
67
+ where: { organizationId: this.orgId },
68
+ orderBy: { name: "asc" },
69
+ });
70
+ }
71
+ /**
72
+ * Resolve a workspace slug into a filter object ready for ContextService/SearchService.
73
+ * Converts domain slugs to domain IDs using the provided domain lookup.
74
+ */
75
+ async resolveFilter(slug, domainSlugToId) {
76
+ const ws = await this.getBySlug(slug);
77
+ if (!ws)
78
+ return null;
79
+ const domainSlugs = ws.domainSlugs || [];
80
+ const domainIds = domainSlugs.length > 0
81
+ ? await domainSlugToId(domainSlugs)
82
+ : undefined;
83
+ return {
84
+ domainIds: domainIds && domainIds.length > 0 ? domainIds : undefined,
85
+ types: (ws.nodeTypes || []).length > 0 ? ws.nodeTypes : undefined,
86
+ tags: (ws.tags || []).length > 0 ? ws.tags : undefined,
87
+ maxDepth: ws.maxDepth ?? undefined,
88
+ maxNodes: ws.maxNodes ?? undefined,
89
+ includeDrafts: ws.includeDrafts,
90
+ };
91
+ }
92
+ /**
93
+ * Export a workspace as a CLAUDE.md-formatted markdown string.
94
+ */
95
+ async exportAsMarkdown(slug) {
96
+ const ws = await this.getBySlug(slug);
97
+ if (!ws)
98
+ return null;
99
+ const domainSlugs = ws.domainSlugs || [];
100
+ const nodeTypes = ws.nodeTypes || [];
101
+ const tags = ws.tags || [];
102
+ let md = `# ${ws.name}\n\n`;
103
+ if (ws.description)
104
+ md += `${ws.description}\n\n`;
105
+ if (ws.systemPrompt)
106
+ md += `## Purpose\n\n${ws.systemPrompt}\n\n`;
107
+ md += `## Knowledge Scope\n\n`;
108
+ if (domainSlugs.length > 0)
109
+ md += `- **Domains:** ${domainSlugs.join(", ")}\n`;
110
+ if (nodeTypes.length > 0)
111
+ md += `- **Node types:** ${nodeTypes.join(", ")}\n`;
112
+ if (tags.length > 0)
113
+ md += `- **Tags:** ${tags.join(", ")}\n`;
114
+ if (!domainSlugs.length && !nodeTypes.length && !tags.length)
115
+ md += `- All knowledge (no filters)\n`;
116
+ md += `\n## Usage\n\n`;
117
+ md += `\`\`\`bash\n`;
118
+ md += `ai context <query> --workspace ${ws.slug}\n`;
119
+ md += `ai search <query> --workspace ${ws.slug}\n`;
120
+ md += `\`\`\`\n`;
121
+ return md;
122
+ }
123
+ }
124
+ //# sourceMappingURL=workspace-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-service.js","sourceRoot":"","sources":["../../src/services/workspace-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAsB,MAAM,iBAAiB,CAAC;AAqC3E,MAAM,OAAO,gBAAgB;IAIjB;IAHF,KAAK,CAAS;IAEtB,YACU,EAAgB,EACxB,SAAyB;QADjB,OAAE,GAAF,EAAE,CAAc;QAGxB,IAAI,CAAC,KAAK,GAAG,SAAS,EAAE,cAAc,IAAI,oBAAoB,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAA2B;QACtC,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;YAC9B,IAAI,EAAE;gBACJ,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;gBACpC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;gBACpC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE;gBAChC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;gBACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;gBAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;gBAChC,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,KAAK;gBAC3C,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE;gBACtC,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,cAAc,EAAE,IAAI,CAAC,KAAK;aAC3B;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,KAA2B;QAClD,2DAA2D;QAC3D,MAAM,IAAI,GAA4B,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;QAChE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACrD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QAC1E,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QAC1E,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACpE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACrD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QACjE,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QACjE,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS;YAAE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QAChF,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QAE7E,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;YAC9B,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC;YAClC,KAAK,EAAE,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE;SACrE,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC;YAChC,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,KAAK,EAAE;YACrC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;SACzB,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CACjB,IAAY,EACZ,cAAsD;QAEtD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAErB,MAAM,WAAW,GAAI,EAAE,CAAC,WAAwB,IAAI,EAAE,CAAC;QACvD,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC;YACtC,CAAC,CAAC,MAAM,cAAc,CAAC,WAAW,CAAC;YACnC,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO;YACL,SAAS,EAAE,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACpE,KAAK,EAAE,CAAE,EAAE,CAAC,SAAsB,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,SAAsB,CAAC,CAAC,CAAC,SAAS;YAC7F,IAAI,EAAE,CAAE,EAAE,CAAC,IAAiB,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,IAAiB,CAAC,CAAC,CAAC,SAAS;YAClF,QAAQ,EAAE,EAAE,CAAC,QAAQ,IAAI,SAAS;YAClC,QAAQ,EAAE,EAAE,CAAC,QAAQ,IAAI,SAAS;YAClC,aAAa,EAAE,EAAE,CAAC,aAAa;SAChC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,IAAY;QACjC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAErB,MAAM,WAAW,GAAI,EAAE,CAAC,WAAwB,IAAI,EAAE,CAAC;QACvD,MAAM,SAAS,GAAI,EAAE,CAAC,SAAsB,IAAI,EAAE,CAAC;QACnD,MAAM,IAAI,GAAI,EAAE,CAAC,IAAiB,IAAI,EAAE,CAAC;QAEzC,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,IAAI,MAAM,CAAC;QAC5B,IAAI,EAAE,CAAC,WAAW;YAAE,EAAE,IAAI,GAAG,EAAE,CAAC,WAAW,MAAM,CAAC;QAClD,IAAI,EAAE,CAAC,YAAY;YAAE,EAAE,IAAI,iBAAiB,EAAE,CAAC,YAAY,MAAM,CAAC;QAElE,EAAE,IAAI,wBAAwB,CAAC;QAC/B,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;YAAE,EAAE,IAAI,kBAAkB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/E,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,EAAE,IAAI,qBAAqB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9E,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,EAAE,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9D,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,EAAE,IAAI,gCAAgC,CAAC;QAErG,EAAE,IAAI,gBAAgB,CAAC;QACvB,EAAE,IAAI,cAAc,CAAC;QACrB,EAAE,IAAI,kCAAkC,EAAE,CAAC,IAAI,IAAI,CAAC;QACpD,EAAE,IAAI,iCAAiC,EAAE,CAAC,IAAI,IAAI,CAAC;QACnD,EAAE,IAAI,UAAU,CAAC;QAEjB,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
@@ -1,6 +1,7 @@
1
- import type { Node as PrismaNode, Edge as PrismaEdge, Domain as PrismaDomain } from "@prisma/client";
1
+ import type { Node as PrismaNode, Edge as PrismaEdge, Domain as PrismaDomain, Workspace as PrismaWorkspace } from "@prisma/client";
2
2
  export type Node = PrismaNode;
3
3
  export type Domain = PrismaDomain;
4
+ export type Workspace = PrismaWorkspace;
4
5
  export type NewNode = Omit<Node, "id" | "createdAt" | "updatedAt" | "embedding" | "searchVector"> & {
5
6
  embedding?: unknown;
6
7
  searchVector?: unknown;
@@ -29,6 +30,7 @@ export interface ContextOptions {
29
30
  includeDrafts?: boolean;
30
31
  types?: string[];
31
32
  domainIds?: string[];
33
+ workspace?: string;
32
34
  }
33
35
  export interface ContextPackage {
34
36
  nodes: Node[];
@@ -36,10 +38,25 @@ export interface ContextPackage {
36
38
  query: string;
37
39
  assembledAt: string;
38
40
  domains?: Domain[];
41
+ workspace?: {
42
+ name: string;
43
+ slug: string;
44
+ description: string;
45
+ };
46
+ }
47
+ export interface EmbedBatchOptions {
48
+ onProgress?: (progress: EmbeddingProgress) => void;
49
+ signal?: AbortSignal;
50
+ }
51
+ export interface EmbeddingProgress {
52
+ completed: number;
53
+ total: number;
54
+ cached: number;
55
+ elapsed: number;
39
56
  }
40
57
  export interface EmbeddingProvider {
41
58
  embed(text: string): Promise<number[]>;
42
- embedBatch(texts: string[]): Promise<number[][]>;
59
+ embedBatch(texts: string[], options?: EmbedBatchOptions): Promise<number[][]>;
43
60
  }
44
61
  /** @deprecated Use ApartConfig instead */
45
62
  export type CollectiveConfig = ApartConfig;
@@ -51,6 +68,14 @@ export interface ApartConfig {
51
68
  provider: string;
52
69
  model: string;
53
70
  dimensions: number;
71
+ batchSize?: number;
72
+ maxConcurrency?: number;
73
+ baseUrl?: string;
74
+ cache?: {
75
+ enabled: boolean;
76
+ backend: "database" | "file";
77
+ directory?: string;
78
+ };
54
79
  };
55
80
  search: {
56
81
  semanticWeight: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apart-tech/intelligence-core",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Core library: database, services, and providers for Apart Intelligence",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -14,10 +14,11 @@ model Organization {
14
14
  metadata Json @default("{}")
15
15
  createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz
16
16
 
17
- nodes Node[]
18
- edges Edge[]
19
- domains Domain[]
20
- apiKeys ApiKey[]
17
+ nodes Node[]
18
+ edges Edge[]
19
+ domains Domain[]
20
+ apiKeys ApiKey[]
21
+ workspaces Workspace[]
21
22
 
22
23
  @@map("organizations")
23
24
  }
@@ -97,6 +98,38 @@ model Edge {
97
98
  @@map("edges")
98
99
  }
99
100
 
101
+ model Workspace {
102
+ id String @id @default(uuid()) @db.Uuid
103
+ name String @db.VarChar(200)
104
+ slug String @db.VarChar(200)
105
+ description String @default("") @db.Text
106
+
107
+ // Filter rules
108
+ domainSlugs Json @default("[]") @map("domain_slugs")
109
+ nodeTypes Json @default("[]") @map("node_types")
110
+ tags Json @default("[]") @map("tags")
111
+
112
+ // Context assembly overrides
113
+ maxDepth Int? @map("max_depth")
114
+ maxNodes Int? @map("max_nodes")
115
+ includeDrafts Boolean @default(false) @map("include_drafts")
116
+
117
+ // Layer 1: map description for AI
118
+ systemPrompt String @default("") @map("system_prompt") @db.Text
119
+
120
+ metadata Json @default("{}")
121
+ createdBy String @map("created_by") @db.VarChar(255)
122
+ createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz
123
+ updatedAt DateTime @default(now()) @map("updated_at") @db.Timestamptz
124
+ organizationId String @map("organization_id") @db.Uuid
125
+
126
+ organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade)
127
+
128
+ @@unique([slug, organizationId], map: "uq_workspaces_slug_org")
129
+ @@index([organizationId], map: "idx_workspaces_organization")
130
+ @@map("workspaces")
131
+ }
132
+
100
133
  model ApiKey {
101
134
  id String @id @default(uuid()) @db.Uuid
102
135
  name String @db.VarChar(255)