@sourcey/catalog-verifier 1.1.26 → 1.1.27

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 (43) hide show
  1. package/SOURCEY-CLOSURE.json +42 -42
  2. package/dist/contracts/agent-readiness/src/binding.d.ts.map +1 -1
  3. package/dist/contracts/agent-readiness/src/binding.js +1 -0
  4. package/dist/contracts/agent-readiness/src/binding.js.map +1 -1
  5. package/dist/contracts/agent-readiness/src/declaration-acquisition.d.ts +1 -0
  6. package/dist/contracts/agent-readiness/src/declaration-acquisition.d.ts.map +1 -1
  7. package/dist/contracts/agent-readiness/src/declaration.d.ts +4 -0
  8. package/dist/contracts/agent-readiness/src/declaration.d.ts.map +1 -1
  9. package/dist/contracts/agent-readiness/src/offer-relations.d.ts +1 -0
  10. package/dist/contracts/agent-readiness/src/offer-relations.d.ts.map +1 -1
  11. package/dist/contracts/agent-readiness/src/operation.d.ts +12 -4
  12. package/dist/contracts/agent-readiness/src/operation.d.ts.map +1 -1
  13. package/dist/contracts/agent-readiness/src/operation.js +42 -7
  14. package/dist/contracts/agent-readiness/src/operation.js.map +1 -1
  15. package/dist/contracts/agent-readiness/src/release-index.d.ts +1 -0
  16. package/dist/contracts/agent-readiness/src/release-index.d.ts.map +1 -1
  17. package/dist/contracts/agent-readiness/src/revision.d.ts +1 -0
  18. package/dist/contracts/agent-readiness/src/revision.d.ts.map +1 -1
  19. package/dist/contracts/api/src/endpoints.d.ts +6 -0
  20. package/dist/contracts/api/src/endpoints.d.ts.map +1 -1
  21. package/dist/contracts/api/src/read.d.ts +3 -1
  22. package/dist/contracts/api/src/read.d.ts.map +1 -1
  23. package/dist/contracts/api/src/read.js +1 -1
  24. package/dist/contracts/api/src/submissions.d.ts +1 -0
  25. package/dist/contracts/api/src/submissions.d.ts.map +1 -1
  26. package/dist/modules/agent-readiness-engine/src/naming.d.ts +3 -1
  27. package/dist/modules/agent-readiness-engine/src/naming.d.ts.map +1 -1
  28. package/dist/modules/agent-readiness-engine/src/naming.js +3 -2
  29. package/dist/modules/agent-readiness-engine/src/naming.js.map +1 -1
  30. package/dist/modules/agent-readiness-engine/src/path.d.ts.map +1 -1
  31. package/dist/modules/agent-readiness-engine/src/path.js +12 -4
  32. package/dist/modules/agent-readiness-engine/src/path.js.map +1 -1
  33. package/dist/modules/agent-readiness-engine/src/records.d.ts +17 -2
  34. package/dist/modules/agent-readiness-engine/src/records.d.ts.map +1 -1
  35. package/dist/modules/agent-readiness-engine/src/records.js +59 -1
  36. package/dist/modules/agent-readiness-engine/src/records.js.map +1 -1
  37. package/dist/modules/agent-readiness-jobs/src/index.d.ts +949 -352
  38. package/dist/modules/agent-readiness-jobs/src/index.d.ts.map +1 -1
  39. package/dist/modules/agent-readiness-jobs/src/index.js +237 -300
  40. package/dist/modules/agent-readiness-jobs/src/index.js.map +1 -1
  41. package/dist/modules/agent-readiness-policy/src/grade-policy.js +1 -1
  42. package/dist/modules/agent-readiness-policy/src/grade-policy.js.map +1 -1
  43. package/package.json +1 -1
@@ -1,5 +1,32 @@
1
1
  import { digest } from "provenry/primitives";
2
2
  import { AGENT_READINESS_JOB_LIBRARY_CONTRACT, agentReadinessJobLibraryCoreSchema, agentReadinessJobLibrarySchema, } from "../../../contracts/agent-readiness/src/index.js";
3
+ /**
4
+ * The shape most jobs share: make one thing carrying the run's nonce, then read
5
+ * it back under the identifier its creation returned or was given. A
6
+ * consequential job cleans up what it made; a billable one costs money instead.
7
+ */
8
+ function madeAndReadBack(job) {
9
+ const effect = job.effect ?? "consequential";
10
+ return {
11
+ job_id: job.job_id,
12
+ category: job.category,
13
+ name: job.name,
14
+ statement: job.statement,
15
+ inputs: [{ kind: "nonce", name: "nonce" }],
16
+ assertions: [
17
+ { name: job.made, statement: job.made_statement, proof: "resource_created" },
18
+ { name: "read_back", statement: job.read_back_statement, proof: "resource_read_back" },
19
+ ],
20
+ observation_links: [
21
+ {
22
+ from: { assertion: job.made, observation: "id" },
23
+ to: { assertion: "read_back", observation: "created_id" },
24
+ },
25
+ ],
26
+ effect,
27
+ cleanup: effect === "consequential" ? "required" : "none",
28
+ };
29
+ }
3
30
  /**
4
31
  * The job library's authored source, sealed into the current policy. Releases
5
32
  * read the library inside the pinned policy file generated from it, so the
@@ -7,170 +34,89 @@ import { AGENT_READINESS_JOB_LIBRARY_CONTRACT, agentReadinessJobLibraryCoreSchem
7
34
  */
8
35
  export const AGENT_READINESS_JOB_LIBRARY_SOURCE = {
9
36
  library_contract: AGENT_READINESS_JOB_LIBRARY_CONTRACT,
10
- library_version: "2026-10-12.1",
37
+ library_version: "2026-10-12.2",
11
38
  jobs: [
12
- {
39
+ madeAndReadBack({
13
40
  job_id: "bounty-claim",
14
41
  category: "bounty-board",
15
42
  name: "Claim a bounty",
16
43
  statement: "Claim an open bounty with a note that is the run's nonce, then read the claim back.",
17
- inputs: [{ kind: "nonce", name: "nonce" }],
18
- assertions: [
19
- {
20
- name: "bounty_claimed",
21
- statement: "The board accepts the claim under an identifier it returns or was given.",
22
- proof: "resource_created",
23
- },
24
- {
25
- name: "read_back",
26
- statement: "The claim reads back under that identifier with the nonce as its note.",
27
- proof: "resource_read_back",
28
- },
29
- ],
30
- observation_links: [
31
- {
32
- from: { assertion: "bounty_claimed", observation: "id" },
33
- to: { assertion: "read_back", observation: "created_id" },
34
- },
35
- ],
36
- effect: "consequential",
37
- cleanup: "required",
38
- },
39
- {
44
+ made: "bounty_claimed",
45
+ made_statement: "The board accepts the claim under an identifier it returns or was given.",
46
+ read_back_statement: "The claim reads back under that identifier with the nonce as its note.",
47
+ }),
48
+ madeAndReadBack({
40
49
  job_id: "bucket-create",
41
50
  category: "cloud-platform",
42
51
  name: "Create a storage bucket",
43
52
  statement: "Create a storage bucket named with the run's nonce, then read it back.",
44
- inputs: [{ kind: "nonce", name: "nonce" }],
45
- assertions: [
46
- {
47
- name: "bucket_created",
48
- statement: "The platform creates the bucket under an identifier it returns or was given.",
49
- proof: "resource_created",
50
- },
51
- {
52
- name: "read_back",
53
- statement: "The bucket reads back under that identifier with the nonce as its name.",
54
- proof: "resource_read_back",
55
- },
56
- ],
57
- observation_links: [
58
- {
59
- from: { assertion: "bucket_created", observation: "id" },
60
- to: { assertion: "read_back", observation: "created_id" },
61
- },
62
- ],
63
- effect: "consequential",
64
- cleanup: "required",
65
- },
66
- {
53
+ made: "bucket_created",
54
+ made_statement: "The platform creates the bucket under an identifier it returns or was given.",
55
+ read_back_statement: "The bucket reads back under that identifier with the nonce as its name.",
56
+ }),
57
+ madeAndReadBack({
58
+ job_id: "cad-document-create",
59
+ category: "cad",
60
+ name: "Create a CAD document",
61
+ statement: "Create a CAD document named with the run's nonce, then read it back.",
62
+ made: "document_created",
63
+ made_statement: "The service creates the document under an identifier it returns or was given.",
64
+ read_back_statement: "The document reads back under that identifier with the nonce as its name.",
65
+ }),
66
+ madeAndReadBack({
67
67
  job_id: "chat-message-post",
68
68
  category: "team-chat",
69
69
  name: "Post a message",
70
70
  statement: "Post a message whose text is the run's nonce to a channel, then read it back.",
71
- inputs: [{ kind: "nonce", name: "nonce" }],
72
- assertions: [
73
- {
74
- name: "message_posted",
75
- statement: "The service posts the message under an identifier it returns or was given.",
76
- proof: "resource_created",
77
- },
78
- {
79
- name: "read_back",
80
- statement: "The message reads back under that identifier with the nonce as its text.",
81
- proof: "resource_read_back",
82
- },
83
- ],
84
- observation_links: [
85
- {
86
- from: { assertion: "message_posted", observation: "id" },
87
- to: { assertion: "read_back", observation: "created_id" },
88
- },
89
- ],
90
- effect: "consequential",
91
- cleanup: "required",
92
- },
93
- {
71
+ made: "message_posted",
72
+ made_statement: "The service posts the message under an identifier it returns or was given.",
73
+ read_back_statement: "The message reads back under that identifier with the nonce as its text.",
74
+ }),
75
+ madeAndReadBack({
76
+ job_id: "compute-instance-create",
77
+ category: "compute",
78
+ name: "Create a compute instance",
79
+ statement: "Create a compute instance labelled with the run's nonce, then read it back.",
80
+ made: "instance_created",
81
+ made_statement: "The service creates the instance under an identifier it returns or was given.",
82
+ read_back_statement: "The instance reads back under that identifier with the nonce as its label.",
83
+ }),
84
+ madeAndReadBack({
85
+ job_id: "content-entry-create",
86
+ category: "content-management",
87
+ name: "Create a content entry",
88
+ statement: "Create a content entry titled with the run's nonce, then read it back.",
89
+ made: "entry_created",
90
+ made_statement: "The service creates the entry under an identifier it returns or was given.",
91
+ read_back_statement: "The entry reads back under that identifier with the nonce as its title.",
92
+ }),
93
+ madeAndReadBack({
94
94
  job_id: "crm-contact-create",
95
95
  category: "crm",
96
96
  name: "Create a contact",
97
97
  statement: "Create a contact with a field set to the run's nonce, then read it back.",
98
- inputs: [{ kind: "nonce", name: "nonce" }],
99
- assertions: [
100
- {
101
- name: "contact_created",
102
- statement: "The service creates the contact under an identifier it returns or was given.",
103
- proof: "resource_created",
104
- },
105
- {
106
- name: "read_back",
107
- statement: "The contact reads back under that identifier with the nonce in that field.",
108
- proof: "resource_read_back",
109
- },
110
- ],
111
- observation_links: [
112
- {
113
- from: { assertion: "contact_created", observation: "id" },
114
- to: { assertion: "read_back", observation: "created_id" },
115
- },
116
- ],
117
- effect: "consequential",
118
- cleanup: "required",
119
- },
120
- {
98
+ made: "contact_created",
99
+ made_statement: "The service creates the contact under an identifier it returns or was given.",
100
+ read_back_statement: "The contact reads back under that identifier with the nonce in that field.",
101
+ }),
102
+ madeAndReadBack({
121
103
  job_id: "database-create",
122
104
  category: "database",
123
105
  name: "Create a database deployment",
124
106
  statement: "Create a database deployment named with the run's nonce, then read it back.",
125
- inputs: [{ kind: "nonce", name: "nonce" }],
126
- assertions: [
127
- {
128
- name: "deployment_created",
129
- statement: "The service creates the deployment under an identifier it returns or was given.",
130
- proof: "resource_created",
131
- },
132
- {
133
- name: "read_back",
134
- statement: "The deployment reads back under that identifier with the nonce as its name.",
135
- proof: "resource_read_back",
136
- },
137
- ],
138
- observation_links: [
139
- {
140
- from: { assertion: "deployment_created", observation: "id" },
141
- to: { assertion: "read_back", observation: "created_id" },
142
- },
143
- ],
144
- effect: "consequential",
145
- cleanup: "required",
146
- },
147
- {
107
+ made: "deployment_created",
108
+ made_statement: "The service creates the deployment under an identifier it returns or was given.",
109
+ read_back_statement: "The deployment reads back under that identifier with the nonce as its name.",
110
+ }),
111
+ madeAndReadBack({
148
112
  job_id: "deployment-create",
149
113
  category: "frontend-hosting",
150
114
  name: "Create a deployment",
151
115
  statement: "Create a deployment named with the run's nonce, then read it back.",
152
- inputs: [{ kind: "nonce", name: "nonce" }],
153
- assertions: [
154
- {
155
- name: "deployment_created",
156
- statement: "The service creates the deployment under an identifier it returns or was given.",
157
- proof: "resource_created",
158
- },
159
- {
160
- name: "read_back",
161
- statement: "The deployment reads back under that identifier with the nonce as its name.",
162
- proof: "resource_read_back",
163
- },
164
- ],
165
- observation_links: [
166
- {
167
- from: { assertion: "deployment_created", observation: "id" },
168
- to: { assertion: "read_back", observation: "created_id" },
169
- },
170
- ],
171
- effect: "consequential",
172
- cleanup: "required",
173
- },
116
+ made: "deployment_created",
117
+ made_statement: "The service creates the deployment under an identifier it returns or was given.",
118
+ read_back_statement: "The deployment reads back under that identifier with the nonce as its name.",
119
+ }),
174
120
  {
175
121
  job_id: "dns-resolve",
176
122
  category: "dns-resolver",
@@ -223,60 +169,42 @@ export const AGENT_READINESS_JOB_LIBRARY_SOURCE = {
223
169
  effect: "billable",
224
170
  cleanup: "none",
225
171
  },
226
- {
172
+ madeAndReadBack({
227
173
  job_id: "error-event-report",
228
174
  category: "error-tracking",
229
175
  name: "Report an error",
230
176
  statement: "Report an error event whose message is the run's nonce, then read it back.",
231
- inputs: [{ kind: "nonce", name: "nonce" }],
232
- assertions: [
233
- {
234
- name: "event_reported",
235
- statement: "The service accepts the event under an identifier it returns or was given.",
236
- proof: "resource_created",
237
- },
238
- {
239
- name: "read_back",
240
- statement: "The event reads back under that identifier with the nonce as its message.",
241
- proof: "resource_read_back",
242
- },
243
- ],
244
- observation_links: [
245
- {
246
- from: { assertion: "event_reported", observation: "id" },
247
- to: { assertion: "read_back", observation: "created_id" },
248
- },
249
- ],
250
- effect: "consequential",
251
- cleanup: "required",
252
- },
253
- {
177
+ made: "event_reported",
178
+ made_statement: "The service accepts the event under an identifier it returns or was given.",
179
+ read_back_statement: "The event reads back under that identifier with the nonce as its message.",
180
+ }),
181
+ madeAndReadBack({
254
182
  job_id: "feature-flag-create",
255
183
  category: "feature-flags",
256
184
  name: "Create a feature flag",
257
185
  statement: "Create a feature flag keyed by the run's nonce, then read it back.",
258
- inputs: [{ kind: "nonce", name: "nonce" }],
259
- assertions: [
260
- {
261
- name: "flag_created",
262
- statement: "The service creates the flag under an identifier it returns or was given.",
263
- proof: "resource_created",
264
- },
265
- {
266
- name: "read_back",
267
- statement: "The flag reads back under that identifier with the nonce as its key.",
268
- proof: "resource_read_back",
269
- },
270
- ],
271
- observation_links: [
272
- {
273
- from: { assertion: "flag_created", observation: "id" },
274
- to: { assertion: "read_back", observation: "created_id" },
275
- },
276
- ],
277
- effect: "consequential",
278
- cleanup: "required",
279
- },
186
+ made: "flag_created",
187
+ made_statement: "The service creates the flag under an identifier it returns or was given.",
188
+ read_back_statement: "The flag reads back under that identifier with the nonce as its key.",
189
+ }),
190
+ madeAndReadBack({
191
+ job_id: "incident-declare",
192
+ category: "incident-management",
193
+ name: "Declare an incident",
194
+ statement: "Declare an incident named with the run's nonce, then read it back.",
195
+ made: "incident_declared",
196
+ made_statement: "The service declares the incident under an identifier it returns or was given.",
197
+ read_back_statement: "The incident reads back under that identifier with the nonce as its name.",
198
+ }),
199
+ madeAndReadBack({
200
+ job_id: "invoice-create",
201
+ category: "invoicing",
202
+ name: "Create an invoice",
203
+ statement: "Create a draft invoice whose reference is the run's nonce, then read it back.",
204
+ made: "invoice_created",
205
+ made_statement: "The service creates the invoice under an identifier it returns or was given.",
206
+ read_back_statement: "The invoice reads back under that identifier with the nonce as its reference.",
207
+ }),
280
208
  {
281
209
  job_id: "model-chat-stream-tool",
282
210
  category: "model-api",
@@ -313,87 +241,61 @@ export const AGENT_READINESS_JOB_LIBRARY_SOURCE = {
313
241
  effect: "billable",
314
242
  cleanup: "none",
315
243
  },
316
- {
244
+ madeAndReadBack({
317
245
  job_id: "monitor-create",
318
246
  category: "monitoring",
319
247
  name: "Create a monitor",
320
248
  statement: "Create a monitor named with the run's nonce, then read it back.",
321
- inputs: [{ kind: "nonce", name: "nonce" }],
322
- assertions: [
323
- {
324
- name: "monitor_created",
325
- statement: "The service creates the monitor under an identifier it returns or was given.",
326
- proof: "resource_created",
327
- },
328
- {
329
- name: "read_back",
330
- statement: "The monitor reads back under that identifier with the nonce as its name.",
331
- proof: "resource_read_back",
332
- },
333
- ],
334
- observation_links: [
335
- {
336
- from: { assertion: "monitor_created", observation: "id" },
337
- to: { assertion: "read_back", observation: "created_id" },
338
- },
339
- ],
340
- effect: "consequential",
341
- cleanup: "required",
342
- },
343
- {
249
+ made: "monitor_created",
250
+ made_statement: "The service creates the monitor under an identifier it returns or was given.",
251
+ read_back_statement: "The monitor reads back under that identifier with the nonce as its name.",
252
+ }),
253
+ madeAndReadBack({
254
+ job_id: "payee-create",
255
+ category: "business-banking",
256
+ name: "Add a payee",
257
+ statement: "Add a payee named with the run's nonce, then read it back.",
258
+ made: "payee_added",
259
+ made_statement: "The service adds the payee under an identifier it returns or was given.",
260
+ read_back_statement: "The payee reads back under that identifier with the nonce as its name.",
261
+ }),
262
+ madeAndReadBack({
344
263
  job_id: "payment-create",
345
264
  category: "payments",
346
265
  name: "Create a payment link",
347
266
  statement: "Create a payment link with a field set to the run's nonce, then read it back.",
348
- inputs: [{ kind: "nonce", name: "nonce" }],
349
- assertions: [
350
- {
351
- name: "link_created",
352
- statement: "The service creates the payment link under an identifier it returns or was given.",
353
- proof: "resource_created",
354
- },
355
- {
356
- name: "read_back",
357
- statement: "The payment link reads back under that identifier with the nonce in that field.",
358
- proof: "resource_read_back",
359
- },
360
- ],
361
- observation_links: [
362
- {
363
- from: { assertion: "link_created", observation: "id" },
364
- to: { assertion: "read_back", observation: "created_id" },
365
- },
366
- ],
367
- effect: "consequential",
368
- cleanup: "required",
369
- },
370
- {
267
+ made: "link_created",
268
+ made_statement: "The service creates the payment link under an identifier it returns or was given.",
269
+ read_back_statement: "The payment link reads back under that identifier with the nonce in that field.",
270
+ }),
271
+ madeAndReadBack({
272
+ job_id: "product-event-capture",
273
+ category: "product-analytics",
274
+ name: "Capture a product event",
275
+ statement: "Capture a product event carrying the run's nonce, then read it back.",
276
+ made: "event_captured",
277
+ made_statement: "The service accepts the event under an identifier it returns or was given.",
278
+ read_back_statement: "The event reads back under that identifier with the nonce among its properties.",
279
+ effect: "billable",
280
+ }),
281
+ madeAndReadBack({
371
282
  job_id: "repository-create",
372
283
  category: "repository-hosting",
373
284
  name: "Create a repository",
374
285
  statement: "Create a repository named with the run's nonce, then read it back.",
375
- inputs: [{ kind: "nonce", name: "nonce" }],
376
- assertions: [
377
- {
378
- name: "repository_created",
379
- statement: "The service creates the repository under an identifier it returns or was given.",
380
- proof: "resource_created",
381
- },
382
- {
383
- name: "read_back",
384
- statement: "The repository reads back under that identifier with the nonce as its name.",
385
- proof: "resource_read_back",
386
- },
387
- ],
388
- observation_links: [
389
- {
390
- from: { assertion: "repository_created", observation: "id" },
391
- to: { assertion: "read_back", observation: "created_id" },
392
- },
393
- ],
394
- effect: "consequential",
395
- cleanup: "required",
396
- },
286
+ made: "repository_created",
287
+ made_statement: "The service creates the repository under an identifier it returns or was given.",
288
+ read_back_statement: "The repository reads back under that identifier with the nonce as its name.",
289
+ }),
290
+ madeAndReadBack({
291
+ job_id: "sandbox-code-run",
292
+ category: "code-sandbox",
293
+ name: "Run code in a sandbox",
294
+ statement: "Start a sandbox carrying the run's nonce, then read the sandbox back.",
295
+ made: "sandbox_started",
296
+ made_statement: "The service starts the sandbox under an identifier it returns or was given.",
297
+ read_back_statement: "The sandbox reads back under that identifier with the nonce.",
298
+ }),
397
299
  {
398
300
  job_id: "search-record-find",
399
301
  category: "search",
@@ -421,6 +323,31 @@ export const AGENT_READINESS_JOB_LIBRARY_SOURCE = {
421
323
  effect: "consequential",
422
324
  cleanup: "required",
423
325
  },
326
+ {
327
+ job_id: "signature-envelope-send",
328
+ category: "e-signature",
329
+ name: "Send an envelope for signature",
330
+ statement: "Send an envelope to a Sourcey-controlled mailbox, its subject the run's nonce: the service accepts it, and an email carrying the nonce arrives there.",
331
+ inputs: [
332
+ { kind: "nonce", name: "nonce" },
333
+ { kind: "sink", name: "recipient", sink: "email" },
334
+ ],
335
+ assertions: [
336
+ {
337
+ name: "message_accepted",
338
+ statement: "The service accepts the envelope and returns its identifier.",
339
+ proof: "message_accepted",
340
+ },
341
+ {
342
+ name: "delivered_to_sink",
343
+ statement: "An email carrying the nonce reaches the Sourcey-controlled mailbox.",
344
+ proof: "sink_received",
345
+ },
346
+ ],
347
+ observation_links: [],
348
+ effect: "billable",
349
+ cleanup: "none",
350
+ },
424
351
  {
425
352
  job_id: "sms-send",
426
353
  category: "sms-messaging",
@@ -451,33 +378,42 @@ export const AGENT_READINESS_JOB_LIBRARY_SOURCE = {
451
378
  effect: "billable",
452
379
  cleanup: "none",
453
380
  },
454
- {
381
+ madeAndReadBack({
382
+ job_id: "support-ticket-create",
383
+ category: "customer-support",
384
+ name: "Create a support ticket",
385
+ statement: "Create a support ticket whose subject is the run's nonce, then read it back.",
386
+ made: "ticket_created",
387
+ made_statement: "The service creates the ticket under an identifier it returns or was given.",
388
+ read_back_statement: "The ticket reads back under that identifier with the nonce as its subject.",
389
+ }),
390
+ madeAndReadBack({
391
+ job_id: "table-record-create",
392
+ category: "tables",
393
+ name: "Add a table record",
394
+ statement: "Add a record whose name is the run's nonce to a table, then read it back.",
395
+ made: "record_added",
396
+ made_statement: "The service adds the record under an identifier it returns or was given.",
397
+ read_back_statement: "The record reads back under that identifier with the nonce as its name.",
398
+ }),
399
+ madeAndReadBack({
400
+ job_id: "task-create",
401
+ category: "task-tracking",
402
+ name: "Create a task",
403
+ statement: "Create a task titled with the run's nonce, then read it back.",
404
+ made: "task_created",
405
+ made_statement: "The service creates the task under an identifier it returns or was given.",
406
+ read_back_statement: "The task reads back under that identifier with the nonce as its title.",
407
+ }),
408
+ madeAndReadBack({
455
409
  job_id: "user-create",
456
410
  category: "auth",
457
411
  name: "Create a user",
458
412
  statement: "Create a user with a field set to the run's nonce, then read it back.",
459
- inputs: [{ kind: "nonce", name: "nonce" }],
460
- assertions: [
461
- {
462
- name: "user_created",
463
- statement: "The service creates the user under an identifier it returns or was given.",
464
- proof: "resource_created",
465
- },
466
- {
467
- name: "read_back",
468
- statement: "The user reads back under that identifier with the nonce in that field.",
469
- proof: "resource_read_back",
470
- },
471
- ],
472
- observation_links: [
473
- {
474
- from: { assertion: "user_created", observation: "id" },
475
- to: { assertion: "read_back", observation: "created_id" },
476
- },
477
- ],
478
- effect: "consequential",
479
- cleanup: "required",
480
- },
413
+ made: "user_created",
414
+ made_statement: "The service creates the user under an identifier it returns or was given.",
415
+ read_back_statement: "The user reads back under that identifier with the nonce in that field.",
416
+ }),
481
417
  {
482
418
  job_id: "vector-upsert-query",
483
419
  category: "vector-database",
@@ -505,33 +441,34 @@ export const AGENT_READINESS_JOB_LIBRARY_SOURCE = {
505
441
  effect: "consequential",
506
442
  cleanup: "required",
507
443
  },
508
- {
444
+ madeAndReadBack({
445
+ job_id: "video-asset-create",
446
+ category: "video",
447
+ name: "Create a video asset",
448
+ statement: "Create a video asset titled with the run's nonce, then read it back.",
449
+ made: "asset_created",
450
+ made_statement: "The service creates the asset under an identifier it returns or was given.",
451
+ read_back_statement: "The asset reads back under that identifier with the nonce as its title.",
452
+ }),
453
+ madeAndReadBack({
454
+ job_id: "workflow-run",
455
+ category: "workflow-automation",
456
+ name: "Run a workflow",
457
+ statement: "Start a run of a workflow with the run's nonce as its input, then read the run back.",
458
+ made: "run_started",
459
+ made_statement: "The service starts the run under an identifier it returns or was given.",
460
+ read_back_statement: "The run reads back under that identifier with the nonce as its input.",
461
+ effect: "billable",
462
+ }),
463
+ madeAndReadBack({
509
464
  job_id: "workspace-page-create",
510
465
  category: "workspace",
511
466
  name: "Create a page",
512
467
  statement: "Create a page whose title is the run's nonce in a shared container, then read it back.",
513
- inputs: [{ kind: "nonce", name: "nonce" }],
514
- assertions: [
515
- {
516
- name: "page_created",
517
- statement: "The service creates the page in the container under an identifier it returns or was given.",
518
- proof: "resource_created",
519
- },
520
- {
521
- name: "read_back",
522
- statement: "The page reads back under that identifier with the nonce as its title.",
523
- proof: "resource_read_back",
524
- },
525
- ],
526
- observation_links: [
527
- {
528
- from: { assertion: "page_created", observation: "id" },
529
- to: { assertion: "read_back", observation: "created_id" },
530
- },
531
- ],
532
- effect: "consequential",
533
- cleanup: "required",
534
- },
468
+ made: "page_created",
469
+ made_statement: "The service creates the page in the container under an identifier it returns or was given.",
470
+ read_back_statement: "The page reads back under that identifier with the nonce as its title.",
471
+ }),
535
472
  ],
536
473
  };
537
474
  /** The library with its digest, checked as every reader checks it. */