@logicsrc/schemas 0.1.0 → 0.1.1

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 (38) hide show
  1. package/README.md +8 -1
  2. package/fixtures/openfleet/mixed.json +86 -0
  3. package/fixtures/openprd/conformance.json +14 -3
  4. package/fixtures/openprd/invalid/bad-filename.md +10 -1
  5. package/fixtures/openprd/invalid/bad-id-format.md +10 -1
  6. package/fixtures/openprd/invalid/bad-status.md +10 -1
  7. package/fixtures/openprd/invalid/dates-backwards.md +10 -1
  8. package/fixtures/openprd/invalid/duplicate-requirement.md +10 -1
  9. package/fixtures/openprd/invalid/id-mismatch.md +10 -1
  10. package/fixtures/openprd/invalid/missing-monetization.md +45 -0
  11. package/fixtures/openprd/invalid/missing-section.md +10 -1
  12. package/fixtures/openprd/invalid/missing-title.md +10 -1
  13. package/fixtures/openprd/invalid/no-front-matter.md +9 -0
  14. package/fixtures/openprd/invalid/out-of-order.md +10 -1
  15. package/fixtures/openprd/invalid/superseded-without-replacement.md +10 -1
  16. package/fixtures/openprd/invalid/unknown-key.md +10 -1
  17. package/fixtures/openprd/valid/bold-requirements.md +10 -1
  18. package/fixtures/openprd/valid/full.md +10 -1
  19. package/fixtures/openprd/valid/legacy-0-2.md +41 -0
  20. package/fixtures/openprd/valid/minimal.md +9 -1
  21. package/fixtures/openprd/valid/none-sections.md +9 -1
  22. package/fixtures/openprd/valid/subsections.md +10 -1
  23. package/fixtures/openprd/valid/superseded.md +10 -1
  24. package/fixtures/openwall/announcement.json +16 -0
  25. package/fixtures/openwall/broadcast.json +27 -0
  26. package/fixtures/openwall/direct.json +17 -0
  27. package/fixtures/openwall/receipt-accepted.json +13 -0
  28. package/fixtures/openwall/receipt-retrying.json +14 -0
  29. package/package.json +16 -3
  30. package/schemas/logicsrc-opencreds-audit-event.schema.json +54 -0
  31. package/schemas/logicsrc-opencreds-database.schema.json +94 -0
  32. package/schemas/logicsrc-opencreds-envelope.schema.json +38 -0
  33. package/schemas/logicsrc-opencreds-item.schema.json +240 -0
  34. package/schemas/logicsrc-opencreds-manifest.schema.json +31 -0
  35. package/schemas/logicsrc-opencreds-vault-meta.schema.json +70 -0
  36. package/schemas/logicsrc-openfleet.schema.json +323 -0
  37. package/schemas/logicsrc-openwall-message.schema.json +246 -0
  38. package/schemas/logicsrc-openwall-receipt.schema.json +229 -0
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  Canonical JSON Schemas (draft 2020-12) for the LogicSRC open coordination
4
4
  standards, maintained by Profullstack, Inc.
5
5
 
6
- Two schema families ship from this package:
6
+ Schema families include:
7
7
 
8
8
  - **LogicSRC core** — `logicsrc-*.schema.json`: tasks, agents, runs, events,
9
9
  plugins, connected accounts, email messages, social posts.
@@ -11,6 +11,13 @@ Two schema families ship from this package:
11
11
  contract for CLI tools and AI agents (ads, placements, requests, responses,
12
12
  impressions, clicks, campaigns). See `docs/agentad.md` in the repo;
13
13
  [cl1s.tech](https://github.com/profullstack/cl1s.tech) is the reference network.
14
+ - **OpenWall draft** — `openwall-message` and `openwall-receipt` exports define
15
+ sender-side audience jobs and private delivery events. Fixtures are in
16
+ `fixtures/openwall`. See `docs/openwall.md` for consent, routing, and runtime
17
+ requirements beyond structural validation; no OpenWall delivery runtime ships.
18
+ - **OpenFleet draft** — the `openfleet` export describes fleets of OpenAgent
19
+ profiles and OpenSwarm file-key references, with metadata and CoinPay rental
20
+ offers. `@logicsrc/validators` also checks membership and rental references.
14
21
 
15
22
  ## Install
16
23
 
@@ -0,0 +1,86 @@
1
+ {
2
+ "type": "logicsrc.openfleet",
3
+ "version": "0.1",
4
+ "id": "https://example.com/fleets/research",
5
+ "name": "Research and distribution fleet",
6
+ "owner_did": "operator.coinpay",
7
+ "description": "An analyst agent and an encrypted reference-data swarm, offered together or separately.",
8
+ "updated_at": "2026-09-13T12:00:00Z",
9
+ "availability": "available",
10
+ "tags": [
11
+ "research",
12
+ "distribution"
13
+ ],
14
+ "capabilities": [
15
+ "analysis",
16
+ "paid-seeding"
17
+ ],
18
+ "metadata": {
19
+ "region": "eu-west",
20
+ "support_url": "https://example.com/support"
21
+ },
22
+ "members": [
23
+ {
24
+ "kind": "openagent",
25
+ "id": "analyst.coinpay",
26
+ "url": "https://example.com/agents/analyst.json",
27
+ "name": "Analyst",
28
+ "role": "analysis",
29
+ "metadata": {
30
+ "languages": [
31
+ "en"
32
+ ]
33
+ }
34
+ },
35
+ {
36
+ "kind": "openswarm",
37
+ "id": "ed25519:0d87e09c7fea3ad6ba6c2f3e027ea47f5b245452899910948470906704c5295d",
38
+ "url": "https://example.com/swarms/references/manifest.json",
39
+ "name": "Reference corpus",
40
+ "role": "reference-data"
41
+ }
42
+ ],
43
+ "rentals": [
44
+ {
45
+ "id": "fleet-hourly",
46
+ "scope": {
47
+ "kind": "fleet"
48
+ },
49
+ "rate": {
50
+ "amount": "25.000000",
51
+ "currency": "USD",
52
+ "unit": "hour"
53
+ },
54
+ "minimum_units": 1,
55
+ "maximum_units": 24,
56
+ "terms_url": "https://example.com/rental-terms",
57
+ "payment": {
58
+ "provider": "coinpay",
59
+ "payee_did": "operator.coinpay",
60
+ "checkout_url": "https://example.com/rentals/research"
61
+ }
62
+ },
63
+ {
64
+ "id": "analyst-task",
65
+ "scope": {
66
+ "kind": "members",
67
+ "members": [
68
+ {
69
+ "kind": "openagent",
70
+ "id": "analyst.coinpay"
71
+ }
72
+ ]
73
+ },
74
+ "rate": {
75
+ "amount": "5.500000",
76
+ "currency": "USD",
77
+ "unit": "task"
78
+ },
79
+ "payment": {
80
+ "provider": "coinpay",
81
+ "payee_did": "operator.coinpay",
82
+ "checkout_url": "https://example.com/rentals/analyst"
83
+ }
84
+ }
85
+ ]
86
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
- "openprdConformance": "0.2",
3
- "description": "Conformance fixtures for OpenPRD 0.2. Every valid fixture must parse and validate with no errors; every invalid fixture must fail with the stated code. `file` is the filename the fixture must be validated as, since the standard's rules depend on it.",
2
+ "openprdConformance": "0.3",
3
+ "description": "Conformance fixtures for OpenPRD 0.3. Every valid fixture must parse and validate with no errors; every invalid fixture must fail with the stated code. `file` is the filename the fixture must be validated as, since the standard's rules depend on it. A document is held to the section list its own `openprd:` version fixes, so valid/legacy-0-2.md still conforms with the eight sections 0.2 defined.",
4
4
  "valid": [
5
5
  {
6
6
  "fixture": "valid/minimal.md",
@@ -25,6 +25,11 @@
25
25
  {
26
26
  "fixture": "valid/none-sections.md",
27
27
  "file": "0005-keep-every-section-even-when-empty.md"
28
+ },
29
+ {
30
+ "fixture": "valid/legacy-0-2.md",
31
+ "file": "0006-keep-a-0-2-document-valid.md",
32
+ "reason": "A 0.2 document has eight sections and must keep conforming under 0.3."
28
33
  }
29
34
  ],
30
35
  "invalid": [
@@ -32,7 +37,13 @@
32
37
  "fixture": "invalid/missing-section.md",
33
38
  "file": "0001-missing-a-section.md",
34
39
  "code": "OP-C-SECTION-MISSING",
35
- "reason": "The eight body sections are all required; Users is absent."
40
+ "reason": "The body sections are all required; Users is absent."
41
+ },
42
+ {
43
+ "fixture": "invalid/missing-monetization.md",
44
+ "file": "0001-omit-the-monetization-section.md",
45
+ "code": "OP-C-SECTION-MISSING",
46
+ "reason": "0.3 requires Tech Stack and Monetization; Monetization is absent."
36
47
  },
37
48
  {
38
49
  "fixture": "invalid/out-of-order.md",
@@ -1,5 +1,5 @@
1
1
  ---
2
- openprd: "0.2"
2
+ openprd: "0.3"
3
3
  id: "0001"
4
4
  title: Bad filename
5
5
  status: Draft
@@ -31,6 +31,15 @@ _None._
31
31
 
32
32
  _None._
33
33
 
34
+ ## Tech Stack
35
+
36
+ TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
37
+ runtime.
38
+
39
+ ## Monetization
40
+
41
+ Bundled into the existing Pro plan at $19/mo; no separate SKU.
42
+
34
43
  ## Success Metrics
35
44
 
36
45
  _None._
@@ -1,5 +1,5 @@
1
1
  ---
2
- openprd: "0.2"
2
+ openprd: "0.3"
3
3
  id: "1"
4
4
  title: Two digit id
5
5
  status: Draft
@@ -31,6 +31,15 @@ _None._
31
31
 
32
32
  _None._
33
33
 
34
+ ## Tech Stack
35
+
36
+ TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
37
+ runtime.
38
+
39
+ ## Monetization
40
+
41
+ Bundled into the existing Pro plan at $19/mo; no separate SKU.
42
+
34
43
  ## Success Metrics
35
44
 
36
45
  _None._
@@ -1,5 +1,5 @@
1
1
  ---
2
- openprd: "0.2"
2
+ openprd: "0.3"
3
3
  id: "0001"
4
4
  title: Unknown status
5
5
  status: Shipped
@@ -31,6 +31,15 @@ _None._
31
31
 
32
32
  _None._
33
33
 
34
+ ## Tech Stack
35
+
36
+ TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
37
+ runtime.
38
+
39
+ ## Monetization
40
+
41
+ Bundled into the existing Pro plan at $19/mo; no separate SKU.
42
+
34
43
  ## Success Metrics
35
44
 
36
45
  _None._
@@ -1,5 +1,5 @@
1
1
  ---
2
- openprd: "0.2"
2
+ openprd: "0.3"
3
3
  id: "0001"
4
4
  title: Updated before created
5
5
  status: Draft
@@ -33,6 +33,15 @@ _None._
33
33
 
34
34
  _None._
35
35
 
36
+ ## Tech Stack
37
+
38
+ TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
39
+ runtime.
40
+
41
+ ## Monetization
42
+
43
+ Bundled into the existing Pro plan at $19/mo; no separate SKU.
44
+
36
45
  ## Success Metrics
37
46
 
38
47
  _None._
@@ -1,5 +1,5 @@
1
1
  ---
2
- openprd: "0.2"
2
+ openprd: "0.3"
3
3
  id: "0001"
4
4
  title: Duplicate requirement id
5
5
  status: Draft
@@ -32,6 +32,15 @@ _None._
32
32
 
33
33
  _None._
34
34
 
35
+ ## Tech Stack
36
+
37
+ TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
38
+ runtime.
39
+
40
+ ## Monetization
41
+
42
+ Bundled into the existing Pro plan at $19/mo; no separate SKU.
43
+
35
44
  ## Success Metrics
36
45
 
37
46
  _None._
@@ -1,5 +1,5 @@
1
1
  ---
2
- openprd: "0.2"
2
+ openprd: "0.3"
3
3
  id: "0042"
4
4
  title: Id does not match
5
5
  status: Draft
@@ -31,6 +31,15 @@ _None._
31
31
 
32
32
  _None._
33
33
 
34
+ ## Tech Stack
35
+
36
+ TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
37
+ runtime.
38
+
39
+ ## Monetization
40
+
41
+ Bundled into the existing Pro plan at $19/mo; no separate SKU.
42
+
34
43
  ## Success Metrics
35
44
 
36
45
  _None._
@@ -0,0 +1,45 @@
1
+ ---
2
+ openprd: "0.3"
3
+ id: "0001"
4
+ title: Omit the monetization section
5
+ status: Draft
6
+ authors:
7
+ - anthony@profullstack.com
8
+ ---
9
+
10
+ ## Problem
11
+
12
+ The thing is broken and it costs us money every week.
13
+
14
+ ## Goals
15
+
16
+ _None._
17
+
18
+ ## Non-Goals
19
+
20
+ _None._
21
+
22
+ ## Users
23
+
24
+ _None._
25
+
26
+ ## Requirements
27
+
28
+ - R1 [P0] First required capability.
29
+
30
+ ## UX Notes
31
+
32
+ _None._
33
+
34
+ ## Tech Stack
35
+
36
+ _None._
37
+
38
+ ## Success Metrics
39
+
40
+ _None._
41
+
42
+ ## Risks & Open Questions
43
+
44
+ _None._
45
+
@@ -1,5 +1,5 @@
1
1
  ---
2
- openprd: "0.2"
2
+ openprd: "0.3"
3
3
  id: "0001"
4
4
  title: Missing a section
5
5
  status: Draft
@@ -27,6 +27,15 @@ _None._
27
27
 
28
28
  _None._
29
29
 
30
+ ## Tech Stack
31
+
32
+ TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
33
+ runtime.
34
+
35
+ ## Monetization
36
+
37
+ Bundled into the existing Pro plan at $19/mo; no separate SKU.
38
+
30
39
  ## Success Metrics
31
40
 
32
41
  _None._
@@ -1,5 +1,5 @@
1
1
  ---
2
- openprd: "0.2"
2
+ openprd: "0.3"
3
3
  id: "0001"
4
4
  status: Draft
5
5
  authors:
@@ -30,6 +30,15 @@ _None._
30
30
 
31
31
  _None._
32
32
 
33
+ ## Tech Stack
34
+
35
+ TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
36
+ runtime.
37
+
38
+ ## Monetization
39
+
40
+ Bundled into the existing Pro plan at $19/mo; no separate SKU.
41
+
33
42
  ## Success Metrics
34
43
 
35
44
  _None._
@@ -24,6 +24,15 @@ _None._
24
24
 
25
25
  _None._
26
26
 
27
+ ## Tech Stack
28
+
29
+ TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
30
+ runtime.
31
+
32
+ ## Monetization
33
+
34
+ Bundled into the existing Pro plan at $19/mo; no separate SKU.
35
+
27
36
  ## Success Metrics
28
37
 
29
38
  _None._
@@ -1,5 +1,5 @@
1
1
  ---
2
- openprd: "0.2"
2
+ openprd: "0.3"
3
3
  id: "0001"
4
4
  title: Sections out of order
5
5
  status: Draft
@@ -31,6 +31,15 @@ _None._
31
31
 
32
32
  _None._
33
33
 
34
+ ## Tech Stack
35
+
36
+ TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
37
+ runtime.
38
+
39
+ ## Monetization
40
+
41
+ Bundled into the existing Pro plan at $19/mo; no separate SKU.
42
+
34
43
  ## Success Metrics
35
44
 
36
45
  _None._
@@ -1,5 +1,5 @@
1
1
  ---
2
- openprd: "0.2"
2
+ openprd: "0.3"
3
3
  id: "0001"
4
4
  title: Superseded with no replacement
5
5
  status: Superseded
@@ -31,6 +31,15 @@ _None._
31
31
 
32
32
  _None._
33
33
 
34
+ ## Tech Stack
35
+
36
+ TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
37
+ runtime.
38
+
39
+ ## Monetization
40
+
41
+ Bundled into the existing Pro plan at $19/mo; no separate SKU.
42
+
34
43
  ## Success Metrics
35
44
 
36
45
  _None._
@@ -1,5 +1,5 @@
1
1
  ---
2
- openprd: "0.2"
2
+ openprd: "0.3"
3
3
  id: "0001"
4
4
  title: Unknown front matter key
5
5
  status: Draft
@@ -32,6 +32,15 @@ _None._
32
32
 
33
33
  _None._
34
34
 
35
+ ## Tech Stack
36
+
37
+ TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
38
+ runtime.
39
+
40
+ ## Monetization
41
+
42
+ Bundled into the existing Pro plan at $19/mo; no separate SKU.
43
+
35
44
  ## Success Metrics
36
45
 
37
46
  _None._
@@ -1,5 +1,5 @@
1
1
  ---
2
- openprd: "0.2"
2
+ openprd: "0.3"
3
3
  id: "0002"
4
4
  title: Use bold requirement markers
5
5
  status: Review
@@ -31,6 +31,15 @@ _None._
31
31
 
32
32
  _None._
33
33
 
34
+ ## Tech Stack
35
+
36
+ TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
37
+ runtime.
38
+
39
+ ## Monetization
40
+
41
+ Bundled into the existing Pro plan at $19/mo; no separate SKU.
42
+
34
43
  ## Success Metrics
35
44
 
36
45
  _None._
@@ -1,5 +1,5 @@
1
1
  ---
2
- openprd: "0.2"
2
+ openprd: "0.3"
3
3
  id: "0001"
4
4
  title: Expand the parked-domain service
5
5
  status: Draft
@@ -38,6 +38,15 @@ _None._
38
38
 
39
39
  _None._
40
40
 
41
+ ## Tech Stack
42
+
43
+ TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
44
+ runtime.
45
+
46
+ ## Monetization
47
+
48
+ Bundled into the existing Pro plan at $19/mo; no separate SKU.
49
+
41
50
  ## Success Metrics
42
51
 
43
52
  _None._
@@ -0,0 +1,41 @@
1
+ ---
2
+ openprd: "0.2"
3
+ id: "0006"
4
+ title: Keep a 0.2 document valid
5
+ status: Draft
6
+ authors:
7
+ - anthony@profullstack.com
8
+ ---
9
+
10
+ ## Problem
11
+
12
+ The thing is broken and it costs us money every week.
13
+
14
+ ## Goals
15
+
16
+ _None._
17
+
18
+ ## Non-Goals
19
+
20
+ _None._
21
+
22
+ ## Users
23
+
24
+ _None._
25
+
26
+ ## Requirements
27
+
28
+ - R1 [P0] First required capability.
29
+
30
+ ## UX Notes
31
+
32
+ _None._
33
+
34
+ ## Success Metrics
35
+
36
+ _None._
37
+
38
+ ## Risks & Open Questions
39
+
40
+ _None._
41
+
@@ -1,5 +1,5 @@
1
1
  ---
2
- openprd: "0.2"
2
+ openprd: "0.3"
3
3
  id: "0001"
4
4
  title: Expand the parked-domain service
5
5
  status: Draft
@@ -31,6 +31,14 @@ _None._
31
31
 
32
32
  _None._
33
33
 
34
+ ## Tech Stack
35
+
36
+ _None._
37
+
38
+ ## Monetization
39
+
40
+ _None._
41
+
34
42
  ## Success Metrics
35
43
 
36
44
  _None._
@@ -1,5 +1,5 @@
1
1
  ---
2
- openprd: "0.2"
2
+ openprd: "0.3"
3
3
  id: "0005"
4
4
  title: Keep every section even when empty
5
5
  status: Accepted
@@ -31,6 +31,14 @@ _None._
31
31
 
32
32
  _None._
33
33
 
34
+ ## Tech Stack
35
+
36
+ _None._
37
+
38
+ ## Monetization
39
+
40
+ _None._
41
+
34
42
  ## Success Metrics
35
43
 
36
44
  _None._
@@ -1,5 +1,5 @@
1
1
  ---
2
- openprd: "0.2"
2
+ openprd: "0.3"
3
3
  id: "0003"
4
4
  title: Organize a long requirements section
5
5
  status: Draft
@@ -37,6 +37,15 @@ _None._
37
37
 
38
38
  _None._
39
39
 
40
+ ## Tech Stack
41
+
42
+ TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
43
+ runtime.
44
+
45
+ ## Monetization
46
+
47
+ Bundled into the existing Pro plan at $19/mo; no separate SKU.
48
+
40
49
  ## Success Metrics
41
50
 
42
51
  _None._
@@ -1,5 +1,5 @@
1
1
  ---
2
- openprd: "0.2"
2
+ openprd: "0.3"
3
3
  id: "0004"
4
4
  title: Retire the old flow
5
5
  status: Superseded
@@ -32,6 +32,15 @@ _None._
32
32
 
33
33
  _None._
34
34
 
35
+ ## Tech Stack
36
+
37
+ TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
38
+ runtime.
39
+
40
+ ## Monetization
41
+
42
+ Bundled into the existing Pro plan at $19/mo; no separate SKU.
43
+
35
44
  ## Success Metrics
36
45
 
37
46
  _None._
@@ -0,0 +1,16 @@
1
+ {
2
+ "openwall": "0.1-draft",
3
+ "id": "urn:uuid:5bb154dd-edb3-47b7-8fc6-4cb65a19a9f8",
4
+ "sender": "did:web:ops.example",
5
+ "createdAt": "2026-09-13T12:00:00Z",
6
+ "expiresAt": "2026-09-20T12:00:00Z",
7
+ "visibility": "public",
8
+ "topic": "releases",
9
+ "audience": {
10
+ "kind": "public"
11
+ },
12
+ "content": {
13
+ "mediaType": "text/plain",
14
+ "text": "Version 1.2 is available."
15
+ }
16
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "openwall": "0.1-draft",
3
+ "id": "urn:uuid:94d908df-2876-48f1-bec8-c931f5c847d4",
4
+ "sender": "did:web:ops.example",
5
+ "createdAt": "2026-09-13T12:00:00Z",
6
+ "expiresAt": "2026-09-13T12:10:00Z",
7
+ "visibility": "private",
8
+ "topic": "maintenance",
9
+ "audience": {
10
+ "kind": "relationships",
11
+ "selectors": [
12
+ {
13
+ "source": "https://dev.example/contacts",
14
+ "actor": "did:web:ops.example",
15
+ "groups": [
16
+ "users"
17
+ ],
18
+ "scope": "https://dev.example/workspaces/main"
19
+ }
20
+ ],
21
+ "exclude": []
22
+ },
23
+ "content": {
24
+ "mediaType": "text/plain",
25
+ "text": "SERVER NOTICE\nMaintenance starts in 10 minutes.\nPlease save your work and pause running jobs."
26
+ }
27
+ }