@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 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",
@@ -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.2",
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.7.2",
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
  },