@giselles-ai/sandkit 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.
- package/LICENSE +21 -0
- package/README.md +163 -0
- package/dist/adapters/drizzle.d.ts +83 -0
- package/dist/adapters/drizzle.js +9 -0
- package/dist/adapters/drizzle.js.map +1 -0
- package/dist/adapters/memory.d.ts +6 -0
- package/dist/adapters/memory.js +8 -0
- package/dist/adapters/memory.js.map +1 -0
- package/dist/adapters/sqlite-bun.d.ts +7 -0
- package/dist/adapters/sqlite-bun.js +8 -0
- package/dist/adapters/sqlite-bun.js.map +1 -0
- package/dist/bin.js +697 -0
- package/dist/bin.js.map +1 -0
- package/dist/chunk-7DLK7LOM.js +44 -0
- package/dist/chunk-7DLK7LOM.js.map +1 -0
- package/dist/chunk-BDPTYR6V.js +407 -0
- package/dist/chunk-BDPTYR6V.js.map +1 -0
- package/dist/chunk-CSOBTLWV.js +202 -0
- package/dist/chunk-CSOBTLWV.js.map +1 -0
- package/dist/chunk-DLGUA3H7.js +9 -0
- package/dist/chunk-DLGUA3H7.js.map +1 -0
- package/dist/chunk-FSDVHEEX.js +45 -0
- package/dist/chunk-FSDVHEEX.js.map +1 -0
- package/dist/chunk-HVYCAAZQ.js +25 -0
- package/dist/chunk-HVYCAAZQ.js.map +1 -0
- package/dist/chunk-LC3IYBAL.js +100 -0
- package/dist/chunk-LC3IYBAL.js.map +1 -0
- package/dist/chunk-REGOUXVI.js +58 -0
- package/dist/chunk-REGOUXVI.js.map +1 -0
- package/dist/chunk-RMMOQD5Y.js +211 -0
- package/dist/chunk-RMMOQD5Y.js.map +1 -0
- package/dist/chunk-UDFWES6J.js +486 -0
- package/dist/chunk-UDFWES6J.js.map +1 -0
- package/dist/chunk-VISDS5T7.js +202 -0
- package/dist/chunk-VISDS5T7.js.map +1 -0
- package/dist/chunk-XM4HGRXW.js +37 -0
- package/dist/chunk-XM4HGRXW.js.map +1 -0
- package/dist/cli/index.d.ts +19 -0
- package/dist/cli/index.js +397 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/index.d.ts +78 -0
- package/dist/index.js +1102 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/mock.d.ts +19 -0
- package/dist/integrations/mock.js +207 -0
- package/dist/integrations/mock.js.map +1 -0
- package/dist/integrations/vercel.d.ts +7 -0
- package/dist/integrations/vercel.js +400 -0
- package/dist/integrations/vercel.js.map +1 -0
- package/dist/policies/ai-gateway.d.ts +15 -0
- package/dist/policies/ai-gateway.js +12 -0
- package/dist/policies/ai-gateway.js.map +1 -0
- package/dist/policies/codex.d.ts +10 -0
- package/dist/policies/codex.js +12 -0
- package/dist/policies/codex.js.map +1 -0
- package/dist/policies/gemini.d.ts +10 -0
- package/dist/policies/gemini.js +12 -0
- package/dist/policies/gemini.js.map +1 -0
- package/dist/schema/index.d.ts +60 -0
- package/dist/schema/index.js +31 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/types-BCgprbo8.d.ts +47 -0
- package/dist/types-BEKQnjeb.d.ts +139 -0
- package/dist/types-Cy36bS1j.d.ts +138 -0
- package/package.json +126 -0
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
// src/schema/model.ts
|
|
2
|
+
var nowIso = () => (/* @__PURE__ */ new Date()).toISOString();
|
|
3
|
+
var baseSchemaName = "sandkit";
|
|
4
|
+
var tablePrefix = "sandkit_";
|
|
5
|
+
var sandkitWorkspaceExport = "sandkitWorkspaces";
|
|
6
|
+
var sandkitRunExport = "sandkitRuns";
|
|
7
|
+
var sandkitPolicyExport = "sandkitPolicies";
|
|
8
|
+
var sandkitSetupStateExport = "sandkitSetupStates";
|
|
9
|
+
var sandkitWorkspaceTable = {
|
|
10
|
+
name: `${tablePrefix}workspaces`,
|
|
11
|
+
exportName: sandkitWorkspaceExport,
|
|
12
|
+
comment: "Persistent workspace metadata.",
|
|
13
|
+
columns: [
|
|
14
|
+
{
|
|
15
|
+
name: "id",
|
|
16
|
+
type: "text",
|
|
17
|
+
primaryKey: true,
|
|
18
|
+
nullable: false,
|
|
19
|
+
comment: "Workspace identifier."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "metadata",
|
|
23
|
+
type: "json",
|
|
24
|
+
nullable: true,
|
|
25
|
+
comment: "Durable workspace metadata, including sandbox lifecycle state."
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: "sandboxId",
|
|
29
|
+
type: "text",
|
|
30
|
+
nullable: true,
|
|
31
|
+
comment: "Stable id returned by the sandbox provider."
|
|
32
|
+
},
|
|
33
|
+
{ name: "status", type: "text", nullable: false },
|
|
34
|
+
{ name: "name", type: "text", nullable: true },
|
|
35
|
+
{
|
|
36
|
+
name: "lastResumedAt",
|
|
37
|
+
type: "timestamp",
|
|
38
|
+
nullable: true,
|
|
39
|
+
comment: "Most recent point when Sandkit resolved a concrete sandbox session."
|
|
40
|
+
},
|
|
41
|
+
{ name: "createdAt", type: "timestamp", nullable: false },
|
|
42
|
+
{ name: "updatedAt", type: "timestamp", nullable: false }
|
|
43
|
+
],
|
|
44
|
+
indexes: [{ name: "workspaces_status_idx", columns: ["status"] }]
|
|
45
|
+
};
|
|
46
|
+
var sandkitRunTable = {
|
|
47
|
+
name: `${tablePrefix}runs`,
|
|
48
|
+
exportName: sandkitRunExport,
|
|
49
|
+
comment: "Execution facts for unit-of-work runs.",
|
|
50
|
+
columns: [
|
|
51
|
+
{
|
|
52
|
+
name: "id",
|
|
53
|
+
type: "text",
|
|
54
|
+
primaryKey: true,
|
|
55
|
+
nullable: false,
|
|
56
|
+
comment: "Run identifier."
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: "workspace_id",
|
|
60
|
+
type: "text",
|
|
61
|
+
nullable: false,
|
|
62
|
+
comment: "FK to workspace.",
|
|
63
|
+
references: {
|
|
64
|
+
table: sandkitWorkspaceTable.name,
|
|
65
|
+
field: "id"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
{ name: "command", type: "text", nullable: false },
|
|
69
|
+
{
|
|
70
|
+
name: "args",
|
|
71
|
+
type: "json",
|
|
72
|
+
nullable: true,
|
|
73
|
+
comment: "Arguments for the executed command."
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: "provider",
|
|
77
|
+
type: "text",
|
|
78
|
+
nullable: false,
|
|
79
|
+
comment: "Driver identity used for execution (e.g. vercel-sandbox, mock)."
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: "execution_target_id",
|
|
83
|
+
type: "text",
|
|
84
|
+
nullable: false,
|
|
85
|
+
comment: "Driver execution target used by the command run."
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
name: "status",
|
|
89
|
+
type: "text",
|
|
90
|
+
nullable: false,
|
|
91
|
+
comment: "Unit status."
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: "policy_snapshot_id",
|
|
95
|
+
type: "text",
|
|
96
|
+
nullable: true,
|
|
97
|
+
comment: "FK to policy snapshot row."
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
name: "provider_commit",
|
|
101
|
+
type: "json",
|
|
102
|
+
nullable: true,
|
|
103
|
+
comment: "Provider durability metadata at run completion."
|
|
104
|
+
},
|
|
105
|
+
{ name: "exit_code", type: "integer", nullable: true },
|
|
106
|
+
{ name: "stdout", type: "text", nullable: true },
|
|
107
|
+
{ name: "stderr", type: "text", nullable: true },
|
|
108
|
+
{ name: "started_at", type: "timestamp", nullable: false },
|
|
109
|
+
{ name: "finished_at", type: "timestamp", nullable: true }
|
|
110
|
+
],
|
|
111
|
+
indexes: [
|
|
112
|
+
{ name: "runs_workspace_id_idx", columns: ["workspace_id"] },
|
|
113
|
+
{ name: "runs_finished_at_idx", columns: ["finished_at"] },
|
|
114
|
+
{ name: "runs_status_idx", columns: ["status"] }
|
|
115
|
+
]
|
|
116
|
+
};
|
|
117
|
+
var sandkitPolicyTable = {
|
|
118
|
+
name: `${tablePrefix}policies`,
|
|
119
|
+
exportName: sandkitPolicyExport,
|
|
120
|
+
comment: "Network policy snapshots and source of truth.",
|
|
121
|
+
columns: [
|
|
122
|
+
{
|
|
123
|
+
name: "id",
|
|
124
|
+
type: "text",
|
|
125
|
+
primaryKey: true,
|
|
126
|
+
nullable: false
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
name: "workspace_id",
|
|
130
|
+
type: "text",
|
|
131
|
+
nullable: false,
|
|
132
|
+
comment: "FK to workspace.",
|
|
133
|
+
references: {
|
|
134
|
+
table: sandkitWorkspaceTable.name,
|
|
135
|
+
field: "id"
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
{ name: "policy_id", type: "text", nullable: false },
|
|
139
|
+
{ name: "config", type: "json", nullable: false },
|
|
140
|
+
{ name: "created_at", type: "timestamp", nullable: false }
|
|
141
|
+
],
|
|
142
|
+
indexes: [{ name: "policies_workspace_id_idx", columns: ["workspace_id"] }]
|
|
143
|
+
};
|
|
144
|
+
var sandkitSetupStateTable = {
|
|
145
|
+
name: `${tablePrefix}setup_states`,
|
|
146
|
+
exportName: sandkitSetupStateExport,
|
|
147
|
+
comment: "Durable shared setup state shared by all workspaces on one adapter.",
|
|
148
|
+
columns: [
|
|
149
|
+
{
|
|
150
|
+
name: "id",
|
|
151
|
+
type: "text",
|
|
152
|
+
primaryKey: true,
|
|
153
|
+
nullable: false,
|
|
154
|
+
comment: "Shared setup state identifier."
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
name: "state",
|
|
158
|
+
type: "json",
|
|
159
|
+
nullable: false,
|
|
160
|
+
comment: "Serialized durable setup snapshot state."
|
|
161
|
+
},
|
|
162
|
+
{ name: "createdAt", type: "timestamp", nullable: false },
|
|
163
|
+
{ name: "updatedAt", type: "timestamp", nullable: false }
|
|
164
|
+
]
|
|
165
|
+
};
|
|
166
|
+
function createSandkitSchemaModel(dialect = "sqlite") {
|
|
167
|
+
const schemaName = dialect === "postgresql" ? `${baseSchemaName}_schema` : baseSchemaName;
|
|
168
|
+
return {
|
|
169
|
+
name: schemaName,
|
|
170
|
+
version: 4,
|
|
171
|
+
dialect,
|
|
172
|
+
tables: [
|
|
173
|
+
{
|
|
174
|
+
...sandkitWorkspaceTable,
|
|
175
|
+
schema: dialect === "postgresql" ? "public" : void 0
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
...sandkitRunTable,
|
|
179
|
+
schema: dialect === "postgresql" ? "public" : void 0
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
...sandkitPolicyTable,
|
|
183
|
+
schema: dialect === "postgresql" ? "public" : void 0
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
...sandkitSetupStateTable,
|
|
187
|
+
schema: dialect === "postgresql" ? "public" : void 0
|
|
188
|
+
}
|
|
189
|
+
]
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
function createModelSnapshot(dialect = "sqlite") {
|
|
193
|
+
return {
|
|
194
|
+
model: createSandkitSchemaModel(dialect),
|
|
195
|
+
generatedAt: nowIso()
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
export {
|
|
200
|
+
sandkitWorkspaceExport,
|
|
201
|
+
sandkitRunExport,
|
|
202
|
+
sandkitPolicyExport,
|
|
203
|
+
sandkitSetupStateExport,
|
|
204
|
+
sandkitWorkspaceTable,
|
|
205
|
+
sandkitRunTable,
|
|
206
|
+
sandkitPolicyTable,
|
|
207
|
+
sandkitSetupStateTable,
|
|
208
|
+
createSandkitSchemaModel,
|
|
209
|
+
createModelSnapshot
|
|
210
|
+
};
|
|
211
|
+
//# sourceMappingURL=chunk-RMMOQD5Y.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/schema/model.ts"],"sourcesContent":["export type SandkitDialect = \"sqlite\" | \"postgresql\" | \"mysql\";\n\nexport type SandkitColumnType = \"text\" | \"integer\" | \"boolean\" | \"json\" | \"timestamp\";\n\nexport interface SandkitColumn {\n name: string;\n type: SandkitColumnType;\n nullable?: boolean;\n primaryKey?: boolean;\n unique?: boolean;\n defaultValue?: string | number | boolean | null;\n comment?: string;\n references?: {\n table: string;\n field: string;\n };\n}\n\nexport interface SandkitIndex {\n name: string;\n columns: string[];\n unique?: boolean;\n}\n\nexport interface SandkitTable {\n name: string;\n schema?: string;\n comment?: string;\n exportName?: string;\n columns: SandkitColumn[];\n indexes?: SandkitIndex[];\n}\n\nexport interface SandkitSchemaModel {\n name: string;\n version: number;\n dialect: SandkitDialect;\n tables: SandkitTable[];\n}\n\nconst nowIso = () => new Date().toISOString();\n\nconst baseSchemaName = \"sandkit\";\nconst tablePrefix = \"sandkit_\";\n\nexport const sandkitWorkspaceExport = \"sandkitWorkspaces\";\nexport const sandkitRunExport = \"sandkitRuns\";\nexport const sandkitPolicyExport = \"sandkitPolicies\";\nexport const sandkitSetupStateExport = \"sandkitSetupStates\";\n\nexport const sandkitWorkspaceTable: SandkitTable = {\n name: `${tablePrefix}workspaces`,\n exportName: sandkitWorkspaceExport,\n comment: \"Persistent workspace metadata.\",\n columns: [\n {\n name: \"id\",\n type: \"text\",\n primaryKey: true,\n nullable: false,\n comment: \"Workspace identifier.\",\n },\n {\n name: \"metadata\",\n type: \"json\",\n nullable: true,\n comment: \"Durable workspace metadata, including sandbox lifecycle state.\",\n },\n {\n name: \"sandboxId\",\n type: \"text\",\n nullable: true,\n comment: \"Stable id returned by the sandbox provider.\",\n },\n { name: \"status\", type: \"text\", nullable: false },\n { name: \"name\", type: \"text\", nullable: true },\n {\n name: \"lastResumedAt\",\n type: \"timestamp\",\n nullable: true,\n comment: \"Most recent point when Sandkit resolved a concrete sandbox session.\",\n },\n { name: \"createdAt\", type: \"timestamp\", nullable: false },\n { name: \"updatedAt\", type: \"timestamp\", nullable: false },\n ],\n indexes: [{ name: \"workspaces_status_idx\", columns: [\"status\"] }],\n};\n\nexport const sandkitRunTable: SandkitTable = {\n name: `${tablePrefix}runs`,\n exportName: sandkitRunExport,\n comment: \"Execution facts for unit-of-work runs.\",\n columns: [\n {\n name: \"id\",\n type: \"text\",\n primaryKey: true,\n nullable: false,\n comment: \"Run identifier.\",\n },\n {\n name: \"workspace_id\",\n type: \"text\",\n nullable: false,\n comment: \"FK to workspace.\",\n references: {\n table: sandkitWorkspaceTable.name,\n field: \"id\",\n },\n },\n { name: \"command\", type: \"text\", nullable: false },\n {\n name: \"args\",\n type: \"json\",\n nullable: true,\n comment: \"Arguments for the executed command.\",\n },\n {\n name: \"provider\",\n type: \"text\",\n nullable: false,\n comment: \"Driver identity used for execution (e.g. vercel-sandbox, mock).\",\n },\n {\n name: \"execution_target_id\",\n type: \"text\",\n nullable: false,\n comment: \"Driver execution target used by the command run.\",\n },\n {\n name: \"status\",\n type: \"text\",\n nullable: false,\n comment: \"Unit status.\",\n },\n {\n name: \"policy_snapshot_id\",\n type: \"text\",\n nullable: true,\n comment: \"FK to policy snapshot row.\",\n },\n {\n name: \"provider_commit\",\n type: \"json\",\n nullable: true,\n comment: \"Provider durability metadata at run completion.\",\n },\n { name: \"exit_code\", type: \"integer\", nullable: true },\n { name: \"stdout\", type: \"text\", nullable: true },\n { name: \"stderr\", type: \"text\", nullable: true },\n { name: \"started_at\", type: \"timestamp\", nullable: false },\n { name: \"finished_at\", type: \"timestamp\", nullable: true },\n ],\n indexes: [\n { name: \"runs_workspace_id_idx\", columns: [\"workspace_id\"] },\n { name: \"runs_finished_at_idx\", columns: [\"finished_at\"] },\n { name: \"runs_status_idx\", columns: [\"status\"] },\n ],\n};\n\nexport const sandkitPolicyTable: SandkitTable = {\n name: `${tablePrefix}policies`,\n exportName: sandkitPolicyExport,\n comment: \"Network policy snapshots and source of truth.\",\n columns: [\n {\n name: \"id\",\n type: \"text\",\n primaryKey: true,\n nullable: false,\n },\n {\n name: \"workspace_id\",\n type: \"text\",\n nullable: false,\n comment: \"FK to workspace.\",\n references: {\n table: sandkitWorkspaceTable.name,\n field: \"id\",\n },\n },\n { name: \"policy_id\", type: \"text\", nullable: false },\n { name: \"config\", type: \"json\", nullable: false },\n { name: \"created_at\", type: \"timestamp\", nullable: false },\n ],\n indexes: [{ name: \"policies_workspace_id_idx\", columns: [\"workspace_id\"] }],\n};\n\nexport const sandkitSetupStateTable: SandkitTable = {\n name: `${tablePrefix}setup_states`,\n exportName: sandkitSetupStateExport,\n comment: \"Durable shared setup state shared by all workspaces on one adapter.\",\n columns: [\n {\n name: \"id\",\n type: \"text\",\n primaryKey: true,\n nullable: false,\n comment: \"Shared setup state identifier.\",\n },\n {\n name: \"state\",\n type: \"json\",\n nullable: false,\n comment: \"Serialized durable setup snapshot state.\",\n },\n { name: \"createdAt\", type: \"timestamp\", nullable: false },\n { name: \"updatedAt\", type: \"timestamp\", nullable: false },\n ],\n};\n\nexport function createSandkitSchemaModel(dialect: SandkitDialect = \"sqlite\"): SandkitSchemaModel {\n const schemaName = dialect === \"postgresql\" ? `${baseSchemaName}_schema` : baseSchemaName;\n return {\n name: schemaName,\n version: 4,\n dialect,\n tables: [\n {\n ...sandkitWorkspaceTable,\n schema: dialect === \"postgresql\" ? \"public\" : undefined,\n },\n {\n ...sandkitRunTable,\n schema: dialect === \"postgresql\" ? \"public\" : undefined,\n },\n {\n ...sandkitPolicyTable,\n schema: dialect === \"postgresql\" ? \"public\" : undefined,\n },\n {\n ...sandkitSetupStateTable,\n schema: dialect === \"postgresql\" ? \"public\" : undefined,\n },\n ],\n };\n}\n\nexport function createModelSnapshot(dialect: SandkitDialect = \"sqlite\"): {\n model: SandkitSchemaModel;\n generatedAt: string;\n} {\n return {\n model: createSandkitSchemaModel(dialect),\n generatedAt: nowIso(),\n };\n}\n"],"mappings":"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","names":[]}
|