@absolutejs/artifacts 0.1.2 → 0.1.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.
- package/dist/manifest.js +124 -0
- package/dist/manifest.json +78 -0
- package/package.json +2 -2
package/dist/manifest.js
CHANGED
|
@@ -168,6 +168,79 @@ var serializedTool = Type.Object({
|
|
|
168
168
|
input: jsonSchemaObject,
|
|
169
169
|
kind: Type.Union([Type.Literal("runtime"), Type.Literal("workspace")])
|
|
170
170
|
});
|
|
171
|
+
var productId = Type.String({ pattern: "^[a-z][a-z0-9_-]{0,63}$" });
|
|
172
|
+
var productCopy = {
|
|
173
|
+
description: Type.String({ minLength: 1 }),
|
|
174
|
+
id: productId,
|
|
175
|
+
title: Type.String({ minLength: 1 })
|
|
176
|
+
};
|
|
177
|
+
var productOperation = Type.Union([
|
|
178
|
+
Type.Literal("aggregate"),
|
|
179
|
+
Type.Literal("create"),
|
|
180
|
+
Type.Literal("delete"),
|
|
181
|
+
Type.Literal("detail"),
|
|
182
|
+
Type.Literal("list"),
|
|
183
|
+
Type.Literal("update")
|
|
184
|
+
]);
|
|
185
|
+
var productProjection = Type.Object({
|
|
186
|
+
blocks: Type.Optional(Type.Array(Type.Object({
|
|
187
|
+
...productCopy,
|
|
188
|
+
category: Type.String({ minLength: 1 }),
|
|
189
|
+
componentExport: Type.String({ minLength: 1 }),
|
|
190
|
+
frameworks: Type.Optional(Type.Array(Type.Union(clientFrameworks.map((framework) => Type.Literal(framework))))),
|
|
191
|
+
props: jsonSchemaObject
|
|
192
|
+
}))),
|
|
193
|
+
connections: Type.Optional(Type.Array(Type.Object({
|
|
194
|
+
...productCopy,
|
|
195
|
+
envKeys: Type.Optional(Type.Array(Type.String({ minLength: 1 }))),
|
|
196
|
+
kind: Type.Union([
|
|
197
|
+
Type.Literal("none"),
|
|
198
|
+
Type.Literal("oauth"),
|
|
199
|
+
Type.Literal("secret")
|
|
200
|
+
]),
|
|
201
|
+
setupTool: Type.Optional(Type.String({ pattern: TOOL_NAME_PATTERN.source })),
|
|
202
|
+
testTool: Type.Optional(Type.String({ pattern: TOOL_NAME_PATTERN.source }))
|
|
203
|
+
}))),
|
|
204
|
+
dataSources: Type.Optional(Type.Array(Type.Object({
|
|
205
|
+
...productCopy,
|
|
206
|
+
operations: Type.Array(productOperation, { minItems: 1 }),
|
|
207
|
+
schema: jsonSchemaObject,
|
|
208
|
+
tools: Type.Optional(Type.Partial(Type.Object({
|
|
209
|
+
aggregate: Type.String({ pattern: TOOL_NAME_PATTERN.source }),
|
|
210
|
+
create: Type.String({ pattern: TOOL_NAME_PATTERN.source }),
|
|
211
|
+
delete: Type.String({ pattern: TOOL_NAME_PATTERN.source }),
|
|
212
|
+
detail: Type.String({ pattern: TOOL_NAME_PATTERN.source }),
|
|
213
|
+
list: Type.String({ pattern: TOOL_NAME_PATTERN.source }),
|
|
214
|
+
update: Type.String({ pattern: TOOL_NAME_PATTERN.source })
|
|
215
|
+
})))
|
|
216
|
+
}))),
|
|
217
|
+
events: Type.Optional(Type.Array(Type.Object({
|
|
218
|
+
...productCopy,
|
|
219
|
+
schema: jsonSchemaObject,
|
|
220
|
+
source: Type.Union([
|
|
221
|
+
Type.Literal("data"),
|
|
222
|
+
Type.Literal("package"),
|
|
223
|
+
Type.Literal("ui"),
|
|
224
|
+
Type.Literal("webhook")
|
|
225
|
+
])
|
|
226
|
+
}))),
|
|
227
|
+
healthChecks: Type.Optional(Type.Array(Type.Object({
|
|
228
|
+
...productCopy,
|
|
229
|
+
tool: Type.String({ pattern: TOOL_NAME_PATTERN.source })
|
|
230
|
+
}))),
|
|
231
|
+
releaseChecks: Type.Optional(Type.Array(Type.Object({
|
|
232
|
+
...productCopy,
|
|
233
|
+
healthCheckIds: Type.Optional(Type.Array(productId)),
|
|
234
|
+
severity: Type.Union([
|
|
235
|
+
Type.Literal("blocking"),
|
|
236
|
+
Type.Literal("warning")
|
|
237
|
+
])
|
|
238
|
+
}))),
|
|
239
|
+
workflowActions: Type.Optional(Type.Array(Type.Object({
|
|
240
|
+
...productCopy,
|
|
241
|
+
tool: Type.String({ pattern: TOOL_NAME_PATTERN.source })
|
|
242
|
+
})))
|
|
243
|
+
});
|
|
171
244
|
var manifestSchema = Type.Object({
|
|
172
245
|
contract: Type.Union([Type.Literal(1), Type.Literal(2)]),
|
|
173
246
|
discovery: Type.Optional(Type.Object({
|
|
@@ -193,6 +266,14 @@ var manifestSchema = Type.Object({
|
|
|
193
266
|
tagline: Type.String({ minLength: 1 })
|
|
194
267
|
}),
|
|
195
268
|
implements: Type.Optional(Type.Array(adapterImplementation)),
|
|
269
|
+
integration: Type.Optional(Type.Object({
|
|
270
|
+
description: Type.Optional(Type.String({ minLength: 1 })),
|
|
271
|
+
mode: Type.Union([
|
|
272
|
+
Type.Literal("adapter"),
|
|
273
|
+
Type.Literal("code-first"),
|
|
274
|
+
Type.Literal("recipe")
|
|
275
|
+
])
|
|
276
|
+
})),
|
|
196
277
|
lifecycle: Type.Optional(Type.Array(lifecycleStep)),
|
|
197
278
|
presets: Type.Optional(Type.Array(Type.Object({
|
|
198
279
|
description: Type.Optional(Type.String()),
|
|
@@ -200,6 +281,7 @@ var manifestSchema = Type.Object({
|
|
|
200
281
|
title: Type.String(),
|
|
201
282
|
values: Type.Record(Type.String(), Type.Unknown())
|
|
202
283
|
}))),
|
|
284
|
+
product: Type.Optional(productProjection),
|
|
203
285
|
requires: Type.Optional(manifestRequirements),
|
|
204
286
|
settings: jsonSchemaObject,
|
|
205
287
|
slots: Type.Optional(Type.Record(Type.String(), adapterSlot)),
|
|
@@ -220,6 +302,48 @@ var manifest = defineManifest()({
|
|
|
220
302
|
name: "@absolutejs/artifacts",
|
|
221
303
|
tagline: "Give everything your AI makes a real lifecycle."
|
|
222
304
|
},
|
|
305
|
+
product: {
|
|
306
|
+
blocks: [
|
|
307
|
+
{
|
|
308
|
+
category: "content",
|
|
309
|
+
componentExport: "ArtifactWorkspace",
|
|
310
|
+
description: "Browse a typed artifact, its lifecycle state, and immutable revision history.",
|
|
311
|
+
frameworks: ["react", "client"],
|
|
312
|
+
id: "artifact_workspace",
|
|
313
|
+
props: Type2.Object({
|
|
314
|
+
artifactId: Type2.String({ minLength: 1 }),
|
|
315
|
+
ownerId: Type2.String({ minLength: 1 })
|
|
316
|
+
}),
|
|
317
|
+
title: "Artifact workspace"
|
|
318
|
+
}
|
|
319
|
+
],
|
|
320
|
+
dataSources: [
|
|
321
|
+
{
|
|
322
|
+
description: "Owner-scoped typed artifacts with current state and immutable revisions.",
|
|
323
|
+
id: "artifacts",
|
|
324
|
+
operations: ["list", "detail"],
|
|
325
|
+
schema: Type2.Object({
|
|
326
|
+
artifactId: Type2.String(),
|
|
327
|
+
kind: Type2.String(),
|
|
328
|
+
ownerId: Type2.String(),
|
|
329
|
+
revision: Type2.Integer()
|
|
330
|
+
}),
|
|
331
|
+
title: "Artifacts",
|
|
332
|
+
tools: {
|
|
333
|
+
detail: "artifact_get",
|
|
334
|
+
list: "artifact_list"
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
],
|
|
338
|
+
workflowActions: [
|
|
339
|
+
{
|
|
340
|
+
description: "Restore an immutable artifact revision as a new private draft.",
|
|
341
|
+
id: "restore_artifact",
|
|
342
|
+
title: "Restore artifact revision",
|
|
343
|
+
tool: "artifact_restore"
|
|
344
|
+
}
|
|
345
|
+
]
|
|
346
|
+
},
|
|
223
347
|
implements: [
|
|
224
348
|
defineImplementation()({
|
|
225
349
|
contract: "artifacts/store",
|
package/dist/manifest.json
CHANGED
|
@@ -8,6 +8,84 @@
|
|
|
8
8
|
"name": "@absolutejs/artifacts",
|
|
9
9
|
"tagline": "Give everything your AI makes a real lifecycle."
|
|
10
10
|
},
|
|
11
|
+
"product": {
|
|
12
|
+
"blocks": [
|
|
13
|
+
{
|
|
14
|
+
"category": "content",
|
|
15
|
+
"componentExport": "ArtifactWorkspace",
|
|
16
|
+
"description": "Browse a typed artifact, its lifecycle state, and immutable revision history.",
|
|
17
|
+
"frameworks": [
|
|
18
|
+
"react",
|
|
19
|
+
"client"
|
|
20
|
+
],
|
|
21
|
+
"id": "artifact_workspace",
|
|
22
|
+
"props": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"required": [
|
|
25
|
+
"artifactId",
|
|
26
|
+
"ownerId"
|
|
27
|
+
],
|
|
28
|
+
"properties": {
|
|
29
|
+
"artifactId": {
|
|
30
|
+
"minLength": 1,
|
|
31
|
+
"type": "string"
|
|
32
|
+
},
|
|
33
|
+
"ownerId": {
|
|
34
|
+
"minLength": 1,
|
|
35
|
+
"type": "string"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"title": "Artifact workspace"
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"dataSources": [
|
|
43
|
+
{
|
|
44
|
+
"description": "Owner-scoped typed artifacts with current state and immutable revisions.",
|
|
45
|
+
"id": "artifacts",
|
|
46
|
+
"operations": [
|
|
47
|
+
"list",
|
|
48
|
+
"detail"
|
|
49
|
+
],
|
|
50
|
+
"schema": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"required": [
|
|
53
|
+
"artifactId",
|
|
54
|
+
"kind",
|
|
55
|
+
"ownerId",
|
|
56
|
+
"revision"
|
|
57
|
+
],
|
|
58
|
+
"properties": {
|
|
59
|
+
"artifactId": {
|
|
60
|
+
"type": "string"
|
|
61
|
+
},
|
|
62
|
+
"kind": {
|
|
63
|
+
"type": "string"
|
|
64
|
+
},
|
|
65
|
+
"ownerId": {
|
|
66
|
+
"type": "string"
|
|
67
|
+
},
|
|
68
|
+
"revision": {
|
|
69
|
+
"type": "integer"
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"title": "Artifacts",
|
|
74
|
+
"tools": {
|
|
75
|
+
"detail": "artifact_get",
|
|
76
|
+
"list": "artifact_list"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"workflowActions": [
|
|
81
|
+
{
|
|
82
|
+
"description": "Restore an immutable artifact revision as a new private draft.",
|
|
83
|
+
"id": "restore_artifact",
|
|
84
|
+
"title": "Restore artifact revision",
|
|
85
|
+
"tool": "artifact_restore"
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
},
|
|
11
89
|
"implements": [
|
|
12
90
|
{
|
|
13
91
|
"contract": "artifacts/store",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@absolutejs/artifacts",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Typed, versioned artifacts for AI products — schemas, lifecycle, storage, rendering, publishing, revisions, and agent tools without prescribing a database or host.",
|
|
5
5
|
"author": "Alex Kahn",
|
|
6
6
|
"license": "BUSL-1.1",
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
}
|
|
84
84
|
},
|
|
85
85
|
"dependencies": {
|
|
86
|
-
"@absolutejs/manifest": "^0.
|
|
86
|
+
"@absolutejs/manifest": "^0.8.0",
|
|
87
87
|
"@sinclair/typebox": "^0.34.0",
|
|
88
88
|
"drizzle-typebox": "1.0.0-beta.14-a36c63d"
|
|
89
89
|
},
|