@boringos/db 0.1.0

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 (106) hide show
  1. package/LICENSE +21 -0
  2. package/dist/connection.d.ts +10 -0
  3. package/dist/connection.d.ts.map +1 -0
  4. package/dist/connection.js +40 -0
  5. package/dist/connection.js.map +1 -0
  6. package/dist/index.d.ts +7 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +5 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/migrate.d.ts +4 -0
  11. package/dist/migrate.d.ts.map +1 -0
  12. package/dist/migrate.js +507 -0
  13. package/dist/migrate.js.map +1 -0
  14. package/dist/schema/activity.d.ts +163 -0
  15. package/dist/schema/activity.d.ts.map +1 -0
  16. package/dist/schema/activity.js +14 -0
  17. package/dist/schema/activity.js.map +1 -0
  18. package/dist/schema/agents.d.ts +531 -0
  19. package/dist/schema/agents.d.ts.map +1 -0
  20. package/dist/schema/agents.js +40 -0
  21. package/dist/schema/agents.js.map +1 -0
  22. package/dist/schema/approvals.d.ts +289 -0
  23. package/dist/schema/approvals.d.ts.map +1 -0
  24. package/dist/schema/approvals.js +25 -0
  25. package/dist/schema/approvals.js.map +1 -0
  26. package/dist/schema/budgets.d.ts +338 -0
  27. package/dist/schema/budgets.d.ts.map +1 -0
  28. package/dist/schema/budgets.js +27 -0
  29. package/dist/schema/budgets.js.map +1 -0
  30. package/dist/schema/connectors.d.ts +165 -0
  31. package/dist/schema/connectors.d.ts.map +1 -0
  32. package/dist/schema/connectors.js +14 -0
  33. package/dist/schema/connectors.js.map +1 -0
  34. package/dist/schema/device-auth.d.ts +161 -0
  35. package/dist/schema/device-auth.d.ts.map +1 -0
  36. package/dist/schema/device-auth.js +13 -0
  37. package/dist/schema/device-auth.js.map +1 -0
  38. package/dist/schema/drive.d.ts +270 -0
  39. package/dist/schema/drive.d.ts.map +1 -0
  40. package/dist/schema/drive.js +22 -0
  41. package/dist/schema/drive.js.map +1 -0
  42. package/dist/schema/entity-refs.d.ts +127 -0
  43. package/dist/schema/entity-refs.d.ts.map +1 -0
  44. package/dist/schema/entity-refs.js +15 -0
  45. package/dist/schema/entity-refs.js.map +1 -0
  46. package/dist/schema/evals.d.ts +343 -0
  47. package/dist/schema/evals.d.ts.map +1 -0
  48. package/dist/schema/evals.js +26 -0
  49. package/dist/schema/evals.js.map +1 -0
  50. package/dist/schema/inbox.d.ts +231 -0
  51. package/dist/schema/inbox.d.ts.map +1 -0
  52. package/dist/schema/inbox.js +18 -0
  53. package/dist/schema/inbox.js.map +1 -0
  54. package/dist/schema/index.d.ts +22 -0
  55. package/dist/schema/index.d.ts.map +1 -0
  56. package/dist/schema/index.js +22 -0
  57. package/dist/schema/index.js.map +1 -0
  58. package/dist/schema/onboarding.d.ts +165 -0
  59. package/dist/schema/onboarding.d.ts.map +1 -0
  60. package/dist/schema/onboarding.js +14 -0
  61. package/dist/schema/onboarding.js.map +1 -0
  62. package/dist/schema/plugins.d.ts +400 -0
  63. package/dist/schema/plugins.d.ts.map +1 -0
  64. package/dist/schema/plugins.js +31 -0
  65. package/dist/schema/plugins.js.map +1 -0
  66. package/dist/schema/projects.d.ts +357 -0
  67. package/dist/schema/projects.d.ts.map +1 -0
  68. package/dist/schema/projects.js +27 -0
  69. package/dist/schema/projects.js.map +1 -0
  70. package/dist/schema/routines.d.ts +212 -0
  71. package/dist/schema/routines.d.ts.map +1 -0
  72. package/dist/schema/routines.js +18 -0
  73. package/dist/schema/routines.js.map +1 -0
  74. package/dist/schema/runs.d.ts +657 -0
  75. package/dist/schema/runs.d.ts.map +1 -0
  76. package/dist/schema/runs.js +49 -0
  77. package/dist/schema/runs.js.map +1 -0
  78. package/dist/schema/runtimes.d.ts +216 -0
  79. package/dist/schema/runtimes.d.ts.map +1 -0
  80. package/dist/schema/runtimes.js +19 -0
  81. package/dist/schema/runtimes.js.map +1 -0
  82. package/dist/schema/skills.d.ts +342 -0
  83. package/dist/schema/skills.d.ts.map +1 -0
  84. package/dist/schema/skills.js +27 -0
  85. package/dist/schema/skills.js.map +1 -0
  86. package/dist/schema/task-features.d.ts +386 -0
  87. package/dist/schema/task-features.d.ts.map +1 -0
  88. package/dist/schema/task-features.js +33 -0
  89. package/dist/schema/task-features.js.map +1 -0
  90. package/dist/schema/tasks.d.ts +689 -0
  91. package/dist/schema/tasks.d.ts.map +1 -0
  92. package/dist/schema/tasks.js +52 -0
  93. package/dist/schema/tasks.js.map +1 -0
  94. package/dist/schema/tenants.d.ts +202 -0
  95. package/dist/schema/tenants.d.ts.map +1 -0
  96. package/dist/schema/tenants.js +17 -0
  97. package/dist/schema/tenants.js.map +1 -0
  98. package/dist/schema/workflows.d.ts +182 -0
  99. package/dist/schema/workflows.d.ts.map +1 -0
  100. package/dist/schema/workflows.js +16 -0
  101. package/dist/schema/workflows.js.map +1 -0
  102. package/dist/types.d.ts +23 -0
  103. package/dist/types.d.ts.map +1 -0
  104. package/dist/types.js +38 -0
  105. package/dist/types.js.map +1 -0
  106. package/package.json +46 -0
@@ -0,0 +1,52 @@
1
+ import { pgTable, uuid, text, integer, timestamp, jsonb, index } from "drizzle-orm/pg-core";
2
+ import { tenants } from "./tenants.js";
3
+ import { agents } from "./agents.js";
4
+ export const tasks = pgTable("tasks", {
5
+ id: uuid("id").primaryKey().defaultRandom(),
6
+ tenantId: uuid("tenant_id").notNull().references(() => tenants.id),
7
+ parentId: uuid("parent_id").references(() => tasks.id),
8
+ title: text("title").notNull(),
9
+ description: text("description"),
10
+ status: text("status").notNull().default("todo"),
11
+ priority: text("priority").notNull().default("medium"),
12
+ assigneeAgentId: uuid("assignee_agent_id").references(() => agents.id, { onDelete: "set null" }),
13
+ assigneeUserId: uuid("assignee_user_id"),
14
+ createdByAgentId: uuid("created_by_agent_id").references(() => agents.id, { onDelete: "set null" }),
15
+ createdByUserId: uuid("created_by_user_id"),
16
+ issueNumber: integer("issue_number"),
17
+ identifier: text("identifier"),
18
+ originKind: text("origin_kind").notNull().default("manual"),
19
+ originId: text("origin_id"),
20
+ requestDepth: integer("request_depth").notNull().default(0),
21
+ startedAt: timestamp("started_at", { withTimezone: true }),
22
+ completedAt: timestamp("completed_at", { withTimezone: true }),
23
+ cancelledAt: timestamp("cancelled_at", { withTimezone: true }),
24
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
25
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
26
+ }, (table) => ({
27
+ tenantStatusIdx: index("tasks_tenant_status_idx").on(table.tenantId, table.status),
28
+ assigneeAgentIdx: index("tasks_assignee_agent_idx").on(table.assigneeAgentId),
29
+ }));
30
+ export const taskComments = pgTable("task_comments", {
31
+ id: uuid("id").primaryKey().defaultRandom(),
32
+ taskId: uuid("task_id").notNull().references(() => tasks.id),
33
+ tenantId: uuid("tenant_id").notNull().references(() => tenants.id),
34
+ body: text("body").notNull(),
35
+ authorAgentId: uuid("author_agent_id").references(() => agents.id, { onDelete: "set null" }),
36
+ authorUserId: uuid("author_user_id"),
37
+ mentions: jsonb("mentions").$type().default([]),
38
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
39
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
40
+ });
41
+ export const taskWorkProducts = pgTable("task_work_products", {
42
+ id: uuid("id").primaryKey().defaultRandom(),
43
+ taskId: uuid("task_id").notNull().references(() => tasks.id),
44
+ tenantId: uuid("tenant_id").notNull().references(() => tenants.id),
45
+ kind: text("kind").notNull(),
46
+ title: text("title").notNull(),
47
+ url: text("url"),
48
+ metadata: jsonb("metadata").$type(),
49
+ createdByAgentId: uuid("created_by_agent_id").references(() => agents.id, { onDelete: "set null" }),
50
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
51
+ });
52
+ //# sourceMappingURL=tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/schema/tasks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,202 @@
1
+ export declare const tenants: import("drizzle-orm/pg-core").PgTableWithColumns<{
2
+ name: "tenants";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core").PgColumn<{
6
+ name: "id";
7
+ tableName: "tenants";
8
+ dataType: "string";
9
+ columnType: "PgUUID";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: true;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: undefined;
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {}>;
22
+ name: import("drizzle-orm/pg-core").PgColumn<{
23
+ name: "name";
24
+ tableName: "tenants";
25
+ dataType: "string";
26
+ columnType: "PgText";
27
+ data: string;
28
+ driverParam: string;
29
+ notNull: true;
30
+ hasDefault: false;
31
+ isPrimaryKey: false;
32
+ isAutoincrement: false;
33
+ hasRuntimeDefault: false;
34
+ enumValues: [string, ...string[]];
35
+ baseColumn: never;
36
+ identity: undefined;
37
+ generated: undefined;
38
+ }, {}, {}>;
39
+ slug: import("drizzle-orm/pg-core").PgColumn<{
40
+ name: "slug";
41
+ tableName: "tenants";
42
+ dataType: "string";
43
+ columnType: "PgText";
44
+ data: string;
45
+ driverParam: string;
46
+ notNull: true;
47
+ hasDefault: false;
48
+ isPrimaryKey: false;
49
+ isAutoincrement: false;
50
+ hasRuntimeDefault: false;
51
+ enumValues: [string, ...string[]];
52
+ baseColumn: never;
53
+ identity: undefined;
54
+ generated: undefined;
55
+ }, {}, {}>;
56
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
57
+ name: "created_at";
58
+ tableName: "tenants";
59
+ dataType: "date";
60
+ columnType: "PgTimestamp";
61
+ data: Date;
62
+ driverParam: string;
63
+ notNull: true;
64
+ hasDefault: true;
65
+ isPrimaryKey: false;
66
+ isAutoincrement: false;
67
+ hasRuntimeDefault: false;
68
+ enumValues: undefined;
69
+ baseColumn: never;
70
+ identity: undefined;
71
+ generated: undefined;
72
+ }, {}, {}>;
73
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
74
+ name: "updated_at";
75
+ tableName: "tenants";
76
+ dataType: "date";
77
+ columnType: "PgTimestamp";
78
+ data: Date;
79
+ driverParam: string;
80
+ notNull: true;
81
+ hasDefault: true;
82
+ isPrimaryKey: false;
83
+ isAutoincrement: false;
84
+ hasRuntimeDefault: false;
85
+ enumValues: undefined;
86
+ baseColumn: never;
87
+ identity: undefined;
88
+ generated: undefined;
89
+ }, {}, {}>;
90
+ };
91
+ dialect: "pg";
92
+ }>;
93
+ export declare const tenantSettings: import("drizzle-orm/pg-core").PgTableWithColumns<{
94
+ name: "tenant_settings";
95
+ schema: undefined;
96
+ columns: {
97
+ id: import("drizzle-orm/pg-core").PgColumn<{
98
+ name: "id";
99
+ tableName: "tenant_settings";
100
+ dataType: "string";
101
+ columnType: "PgUUID";
102
+ data: string;
103
+ driverParam: string;
104
+ notNull: true;
105
+ hasDefault: true;
106
+ isPrimaryKey: true;
107
+ isAutoincrement: false;
108
+ hasRuntimeDefault: false;
109
+ enumValues: undefined;
110
+ baseColumn: never;
111
+ identity: undefined;
112
+ generated: undefined;
113
+ }, {}, {}>;
114
+ tenantId: import("drizzle-orm/pg-core").PgColumn<{
115
+ name: "tenant_id";
116
+ tableName: "tenant_settings";
117
+ dataType: "string";
118
+ columnType: "PgUUID";
119
+ data: string;
120
+ driverParam: string;
121
+ notNull: true;
122
+ hasDefault: false;
123
+ isPrimaryKey: false;
124
+ isAutoincrement: false;
125
+ hasRuntimeDefault: false;
126
+ enumValues: undefined;
127
+ baseColumn: never;
128
+ identity: undefined;
129
+ generated: undefined;
130
+ }, {}, {}>;
131
+ key: import("drizzle-orm/pg-core").PgColumn<{
132
+ name: "key";
133
+ tableName: "tenant_settings";
134
+ dataType: "string";
135
+ columnType: "PgText";
136
+ data: string;
137
+ driverParam: string;
138
+ notNull: true;
139
+ hasDefault: false;
140
+ isPrimaryKey: false;
141
+ isAutoincrement: false;
142
+ hasRuntimeDefault: false;
143
+ enumValues: [string, ...string[]];
144
+ baseColumn: never;
145
+ identity: undefined;
146
+ generated: undefined;
147
+ }, {}, {}>;
148
+ value: import("drizzle-orm/pg-core").PgColumn<{
149
+ name: "value";
150
+ tableName: "tenant_settings";
151
+ dataType: "string";
152
+ columnType: "PgText";
153
+ data: string;
154
+ driverParam: string;
155
+ notNull: false;
156
+ hasDefault: false;
157
+ isPrimaryKey: false;
158
+ isAutoincrement: false;
159
+ hasRuntimeDefault: false;
160
+ enumValues: [string, ...string[]];
161
+ baseColumn: never;
162
+ identity: undefined;
163
+ generated: undefined;
164
+ }, {}, {}>;
165
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
166
+ name: "created_at";
167
+ tableName: "tenant_settings";
168
+ dataType: "date";
169
+ columnType: "PgTimestamp";
170
+ data: Date;
171
+ driverParam: string;
172
+ notNull: true;
173
+ hasDefault: true;
174
+ isPrimaryKey: false;
175
+ isAutoincrement: false;
176
+ hasRuntimeDefault: false;
177
+ enumValues: undefined;
178
+ baseColumn: never;
179
+ identity: undefined;
180
+ generated: undefined;
181
+ }, {}, {}>;
182
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
183
+ name: "updated_at";
184
+ tableName: "tenant_settings";
185
+ dataType: "date";
186
+ columnType: "PgTimestamp";
187
+ data: Date;
188
+ driverParam: string;
189
+ notNull: true;
190
+ hasDefault: true;
191
+ isPrimaryKey: false;
192
+ isAutoincrement: false;
193
+ hasRuntimeDefault: false;
194
+ enumValues: undefined;
195
+ baseColumn: never;
196
+ identity: undefined;
197
+ generated: undefined;
198
+ }, {}, {}>;
199
+ };
200
+ dialect: "pg";
201
+ }>;
202
+ //# sourceMappingURL=tenants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenants.d.ts","sourceRoot":"","sources":["../../src/schema/tenants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMlB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOzB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { pgTable, uuid, text, timestamp } from "drizzle-orm/pg-core";
2
+ export const tenants = pgTable("tenants", {
3
+ id: uuid("id").primaryKey().defaultRandom(),
4
+ name: text("name").notNull(),
5
+ slug: text("slug").notNull().unique(),
6
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
7
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
8
+ });
9
+ export const tenantSettings = pgTable("tenant_settings", {
10
+ id: uuid("id").primaryKey().defaultRandom(),
11
+ tenantId: uuid("tenant_id").notNull().references(() => tenants.id),
12
+ key: text("key").notNull(),
13
+ value: text("value"),
14
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
15
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
16
+ });
17
+ //# sourceMappingURL=tenants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenants.js","sourceRoot":"","sources":["../../src/schema/tenants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE;IACxC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE;IAC3C,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE;IACrC,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,iBAAiB,EAAE;IACvD,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE;IAC3C,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAClE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;IAC1B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,CAAC,CAAC"}
@@ -0,0 +1,182 @@
1
+ export declare const workflows: import("drizzle-orm/pg-core").PgTableWithColumns<{
2
+ name: "workflows";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core").PgColumn<{
6
+ name: "id";
7
+ tableName: "workflows";
8
+ dataType: "string";
9
+ columnType: "PgUUID";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: true;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: undefined;
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {}>;
22
+ tenantId: import("drizzle-orm/pg-core").PgColumn<{
23
+ name: "tenant_id";
24
+ tableName: "workflows";
25
+ dataType: "string";
26
+ columnType: "PgUUID";
27
+ data: string;
28
+ driverParam: string;
29
+ notNull: true;
30
+ hasDefault: false;
31
+ isPrimaryKey: false;
32
+ isAutoincrement: false;
33
+ hasRuntimeDefault: false;
34
+ enumValues: undefined;
35
+ baseColumn: never;
36
+ identity: undefined;
37
+ generated: undefined;
38
+ }, {}, {}>;
39
+ name: import("drizzle-orm/pg-core").PgColumn<{
40
+ name: "name";
41
+ tableName: "workflows";
42
+ dataType: "string";
43
+ columnType: "PgText";
44
+ data: string;
45
+ driverParam: string;
46
+ notNull: true;
47
+ hasDefault: false;
48
+ isPrimaryKey: false;
49
+ isAutoincrement: false;
50
+ hasRuntimeDefault: false;
51
+ enumValues: [string, ...string[]];
52
+ baseColumn: never;
53
+ identity: undefined;
54
+ generated: undefined;
55
+ }, {}, {}>;
56
+ type: import("drizzle-orm/pg-core").PgColumn<{
57
+ name: "type";
58
+ tableName: "workflows";
59
+ dataType: "string";
60
+ columnType: "PgText";
61
+ data: string;
62
+ driverParam: string;
63
+ notNull: true;
64
+ hasDefault: true;
65
+ isPrimaryKey: false;
66
+ isAutoincrement: false;
67
+ hasRuntimeDefault: false;
68
+ enumValues: [string, ...string[]];
69
+ baseColumn: never;
70
+ identity: undefined;
71
+ generated: undefined;
72
+ }, {}, {}>;
73
+ status: import("drizzle-orm/pg-core").PgColumn<{
74
+ name: "status";
75
+ tableName: "workflows";
76
+ dataType: "string";
77
+ columnType: "PgText";
78
+ data: string;
79
+ driverParam: string;
80
+ notNull: true;
81
+ hasDefault: true;
82
+ isPrimaryKey: false;
83
+ isAutoincrement: false;
84
+ hasRuntimeDefault: false;
85
+ enumValues: [string, ...string[]];
86
+ baseColumn: never;
87
+ identity: undefined;
88
+ generated: undefined;
89
+ }, {}, {}>;
90
+ governingAgentId: import("drizzle-orm/pg-core").PgColumn<{
91
+ name: "governing_agent_id";
92
+ tableName: "workflows";
93
+ dataType: "string";
94
+ columnType: "PgUUID";
95
+ data: string;
96
+ driverParam: string;
97
+ notNull: false;
98
+ hasDefault: false;
99
+ isPrimaryKey: false;
100
+ isAutoincrement: false;
101
+ hasRuntimeDefault: false;
102
+ enumValues: undefined;
103
+ baseColumn: never;
104
+ identity: undefined;
105
+ generated: undefined;
106
+ }, {}, {}>;
107
+ blocks: import("drizzle-orm/pg-core").PgColumn<{
108
+ name: "blocks";
109
+ tableName: "workflows";
110
+ dataType: "json";
111
+ columnType: "PgJsonb";
112
+ data: Record<string, unknown>[];
113
+ driverParam: unknown;
114
+ notNull: true;
115
+ hasDefault: true;
116
+ isPrimaryKey: false;
117
+ isAutoincrement: false;
118
+ hasRuntimeDefault: false;
119
+ enumValues: undefined;
120
+ baseColumn: never;
121
+ identity: undefined;
122
+ generated: undefined;
123
+ }, {}, {
124
+ $type: Record<string, unknown>[];
125
+ }>;
126
+ edges: import("drizzle-orm/pg-core").PgColumn<{
127
+ name: "edges";
128
+ tableName: "workflows";
129
+ dataType: "json";
130
+ columnType: "PgJsonb";
131
+ data: Record<string, unknown>[];
132
+ driverParam: unknown;
133
+ notNull: true;
134
+ hasDefault: true;
135
+ isPrimaryKey: false;
136
+ isAutoincrement: false;
137
+ hasRuntimeDefault: false;
138
+ enumValues: undefined;
139
+ baseColumn: never;
140
+ identity: undefined;
141
+ generated: undefined;
142
+ }, {}, {
143
+ $type: Record<string, unknown>[];
144
+ }>;
145
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
146
+ name: "created_at";
147
+ tableName: "workflows";
148
+ dataType: "date";
149
+ columnType: "PgTimestamp";
150
+ data: Date;
151
+ driverParam: string;
152
+ notNull: true;
153
+ hasDefault: true;
154
+ isPrimaryKey: false;
155
+ isAutoincrement: false;
156
+ hasRuntimeDefault: false;
157
+ enumValues: undefined;
158
+ baseColumn: never;
159
+ identity: undefined;
160
+ generated: undefined;
161
+ }, {}, {}>;
162
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
163
+ name: "updated_at";
164
+ tableName: "workflows";
165
+ dataType: "date";
166
+ columnType: "PgTimestamp";
167
+ data: Date;
168
+ driverParam: string;
169
+ notNull: true;
170
+ hasDefault: true;
171
+ isPrimaryKey: false;
172
+ isAutoincrement: false;
173
+ hasRuntimeDefault: false;
174
+ enumValues: undefined;
175
+ baseColumn: never;
176
+ identity: undefined;
177
+ generated: undefined;
178
+ }, {}, {}>;
179
+ };
180
+ dialect: "pg";
181
+ }>;
182
+ //# sourceMappingURL=workflows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/schema/workflows.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWpB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { pgTable, uuid, text, timestamp, jsonb } from "drizzle-orm/pg-core";
2
+ import { tenants } from "./tenants.js";
3
+ import { agents } from "./agents.js";
4
+ export const workflows = pgTable("workflows", {
5
+ id: uuid("id").primaryKey().defaultRandom(),
6
+ tenantId: uuid("tenant_id").notNull().references(() => tenants.id),
7
+ name: text("name").notNull(),
8
+ type: text("type").notNull().default("user"),
9
+ status: text("status").notNull().default("draft"),
10
+ governingAgentId: uuid("governing_agent_id").references(() => agents.id, { onDelete: "set null" }),
11
+ blocks: jsonb("blocks").$type().notNull().default([]),
12
+ edges: jsonb("edges").$type().notNull().default([]),
13
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
14
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
15
+ });
16
+ //# sourceMappingURL=workflows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/schema/workflows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE;IAC5C,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE;IAC3C,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAClE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IACjD,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAClG,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,EAA6B,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAChF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAA6B,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9E,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ export type DatabaseConfig = {
2
+ url: string;
3
+ } | {
4
+ embedded: true;
5
+ dataDir?: string;
6
+ port?: number;
7
+ };
8
+ export interface MigrationManager {
9
+ pending(): Promise<MigrationInfo[]>;
10
+ apply(): Promise<MigrationResult>;
11
+ status(): Promise<MigrationInfo[]>;
12
+ }
13
+ export interface MigrationInfo {
14
+ name: string;
15
+ appliedAt: Date | null;
16
+ }
17
+ export interface MigrationResult {
18
+ applied: string[];
19
+ skipped: string[];
20
+ }
21
+ export declare const FRAMEWORK_TABLES: readonly ["agents", "agent_runs", "agent_wakeup_requests", "agent_runtime_state", "agent_config_revisions", "agent_skills", "tasks", "task_comments", "task_work_products", "task_attachments", "task_labels", "task_read_states", "approvals", "task_approvals", "runtimes", "cost_events", "budget_policies", "budget_incidents", "execution_workspaces", "company_skills", "connectors", "canonical_items", "workflows", "routines", "routine_triggers", "routine_runs", "drive_files", "documents", "document_revisions", "secrets", "activity_log"];
22
+ export type FrameworkTable = (typeof FRAMEWORK_TABLES)[number];
23
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GACtB;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GACf;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAIxD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACpC,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IAClC,MAAM,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAMD,eAAO,MAAM,gBAAgB,0hBAgCnB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,38 @@
1
+ // ── Database configuration ───────────────────────────────────────────────────
2
+ // ── Framework table registry ─────────────────────────────────────────────────
3
+ // Tables that belong to the framework vs product layer.
4
+ // Phase 3 will use this to split Drizzle schema definitions.
5
+ export const FRAMEWORK_TABLES = [
6
+ "agents",
7
+ "agent_runs",
8
+ "agent_wakeup_requests",
9
+ "agent_runtime_state",
10
+ "agent_config_revisions",
11
+ "agent_skills",
12
+ "tasks",
13
+ "task_comments",
14
+ "task_work_products",
15
+ "task_attachments",
16
+ "task_labels",
17
+ "task_read_states",
18
+ "approvals",
19
+ "task_approvals",
20
+ "runtimes",
21
+ "cost_events",
22
+ "budget_policies",
23
+ "budget_incidents",
24
+ "execution_workspaces",
25
+ "company_skills",
26
+ "connectors",
27
+ "canonical_items",
28
+ "workflows",
29
+ "routines",
30
+ "routine_triggers",
31
+ "routine_runs",
32
+ "drive_files",
33
+ "documents",
34
+ "document_revisions",
35
+ "secrets",
36
+ "activity_log",
37
+ ];
38
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAwBhF,gFAAgF;AAChF,wDAAwD;AACxD,6DAA6D;AAE7D,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ;IACR,YAAY;IACZ,uBAAuB;IACvB,qBAAqB;IACrB,wBAAwB;IACxB,cAAc;IACd,OAAO;IACP,eAAe;IACf,oBAAoB;IACpB,kBAAkB;IAClB,aAAa;IACb,kBAAkB;IAClB,WAAW;IACX,gBAAgB;IAChB,UAAU;IACV,aAAa;IACb,iBAAiB;IACjB,kBAAkB;IAClB,sBAAsB;IACtB,gBAAgB;IAChB,YAAY;IACZ,iBAAiB;IACjB,WAAW;IACX,UAAU;IACV,kBAAkB;IAClB,cAAc;IACd,aAAa;IACb,WAAW;IACX,oBAAoB;IACpB,SAAS;IACT,cAAc;CACN,CAAC"}
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "@boringos/db",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.js"
11
+ }
12
+ },
13
+ "license": "MIT",
14
+ "dependencies": {
15
+ "drizzle-orm": "^0.41.0",
16
+ "postgres": "^3.4.5",
17
+ "embedded-postgres": "^18.1.0-beta.16",
18
+ "@boringos/shared": "0.1.0"
19
+ },
20
+ "devDependencies": {
21
+ "@types/node": "^22.0.0",
22
+ "drizzle-kit": "^0.30.0",
23
+ "typescript": "^5.7.3"
24
+ },
25
+ "description": "Database schema + embedded Postgres + migration manager",
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "https://github.com/BoringOS-dev/boringos.git"
29
+ },
30
+ "homepage": "https://boringos.dev",
31
+ "author": "BoringOS Contributors",
32
+ "files": [
33
+ "dist",
34
+ "README.md"
35
+ ],
36
+ "keywords": [
37
+ "boringos",
38
+ "agentic",
39
+ "ai-agents",
40
+ "framework"
41
+ ],
42
+ "scripts": {
43
+ "build": "tsc",
44
+ "typecheck": "tsc --noEmit"
45
+ }
46
+ }