@logicsrc/schemas 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.
Files changed (194) hide show
  1. package/README.md +34 -0
  2. package/fixtures/agent.yaml +20 -0
  3. package/fixtures/agentad-ad.yaml +33 -0
  4. package/fixtures/agentad-placement.yaml +21 -0
  5. package/fixtures/opencontext/conformance.json +279 -0
  6. package/fixtures/opencontext/invalid/audit-event-missing-actor.json +5 -0
  7. package/fixtures/opencontext/invalid/audit-event-unknown-event.json +9 -0
  8. package/fixtures/opencontext/invalid/bundle-bad-digest.json +11 -0
  9. package/fixtures/opencontext/invalid/bundle-bad-id.json +11 -0
  10. package/fixtures/opencontext/invalid/bundle-missing-digest.json +10 -0
  11. package/fixtures/opencontext/invalid/bundle-unknown-exclusion-reason.json +17 -0
  12. package/fixtures/opencontext/invalid/decision-bad-status.json +7 -0
  13. package/fixtures/opencontext/invalid/decision-missing-decision.json +5 -0
  14. package/fixtures/opencontext/invalid/decision-wrong-type.json +6 -0
  15. package/fixtures/opencontext/invalid/diagnostic-missing-ok.json +4 -0
  16. package/fixtures/opencontext/invalid/diagnostic-unknown-code.json +11 -0
  17. package/fixtures/opencontext/invalid/manifest-bad-authority.json +10 -0
  18. package/fixtures/opencontext/invalid/manifest-bad-extension.json +9 -0
  19. package/fixtures/opencontext/invalid/manifest-bad-id.json +4 -0
  20. package/fixtures/opencontext/invalid/manifest-bad-ttl.json +7 -0
  21. package/fixtures/opencontext/invalid/manifest-missing-version.json +3 -0
  22. package/fixtures/opencontext/invalid/manifest-role-bad-pattern.json +11 -0
  23. package/fixtures/opencontext/invalid/manifest-unknown-key.json +5 -0
  24. package/fixtures/opencontext/invalid/object-bad-digest.json +10 -0
  25. package/fixtures/opencontext/invalid/object-bad-id.json +4 -0
  26. package/fixtures/opencontext/invalid/object-bad-layer.json +5 -0
  27. package/fixtures/opencontext/invalid/object-bad-redaction-mode.json +10 -0
  28. package/fixtures/opencontext/invalid/object-bad-supersedes.json +7 -0
  29. package/fixtures/opencontext/invalid/object-confidence-out-of-range.json +5 -0
  30. package/fixtures/opencontext/invalid/object-extra-property.json +5 -0
  31. package/fixtures/opencontext/invalid/object-missing-id.json +3 -0
  32. package/fixtures/opencontext/invalid/object-missing-type.json +3 -0
  33. package/fixtures/opencontext/invalid/object-source-without-uri.json +9 -0
  34. package/fixtures/opencontext/invalid/object-unknown-authority.json +5 -0
  35. package/fixtures/opencontext/invalid/object-unknown-classification.json +5 -0
  36. package/fixtures/opencontext/invalid/object-unknown-trust.json +5 -0
  37. package/fixtures/opencontext/invalid/provenance-canonical-false.json +4 -0
  38. package/fixtures/opencontext/invalid/provenance-no-source.json +3 -0
  39. package/fixtures/opencontext/invalid/role-bad-classification.json +4 -0
  40. package/fixtures/opencontext/invalid/role-bad-include.json +6 -0
  41. package/fixtures/opencontext/invalid-manifest.json +177 -0
  42. package/fixtures/opencontext/resolution/authority-conflict/context/policies/refunds-observed.md +10 -0
  43. package/fixtures/opencontext/resolution/authority-conflict/context/policies/refunds.md +12 -0
  44. package/fixtures/opencontext/resolution/authority-conflict/expected.json +21 -0
  45. package/fixtures/opencontext/resolution/authority-conflict/opencontext.yaml +11 -0
  46. package/fixtures/opencontext/resolution/classification-ceiling/context/docs/handbook.md +11 -0
  47. package/fixtures/opencontext/resolution/classification-ceiling/context/docs/litigation.md +11 -0
  48. package/fixtures/opencontext/resolution/classification-ceiling/expected.json +32 -0
  49. package/fixtures/opencontext/resolution/classification-ceiling/opencontext.yaml +16 -0
  50. package/fixtures/opencontext/resolution/deny-overrides-allow/context/mission.md +10 -0
  51. package/fixtures/opencontext/resolution/deny-overrides-allow/context/policies/internal/margins.md +10 -0
  52. package/fixtures/opencontext/resolution/deny-overrides-allow/context/policies/refunds.md +10 -0
  53. package/fixtures/opencontext/resolution/deny-overrides-allow/expected.json +19 -0
  54. package/fixtures/opencontext/resolution/deny-overrides-allow/opencontext.yaml +17 -0
  55. package/fixtures/opencontext/resolution/duplicate-canonical/context/policies/refunds-rewrite.md +12 -0
  56. package/fixtures/opencontext/resolution/duplicate-canonical/context/policies/refunds.md +12 -0
  57. package/fixtures/opencontext/resolution/duplicate-canonical/expected.json +10 -0
  58. package/fixtures/opencontext/resolution/duplicate-canonical/opencontext.yaml +11 -0
  59. package/fixtures/opencontext/resolution/lifecycle/context/notes/current.md +11 -0
  60. package/fixtures/opencontext/resolution/lifecycle/context/notes/expired.md +12 -0
  61. package/fixtures/opencontext/resolution/lifecycle/context/notes/future.md +12 -0
  62. package/fixtures/opencontext/resolution/lifecycle/context/notes/stale.md +11 -0
  63. package/fixtures/opencontext/resolution/lifecycle/expected.json +30 -0
  64. package/fixtures/opencontext/resolution/lifecycle/opencontext.yaml +14 -0
  65. package/fixtures/opencontext/resolution/object-permissions/context/policies/payroll.md +12 -0
  66. package/fixtures/opencontext/resolution/object-permissions/context/policies/refunds.md +10 -0
  67. package/fixtures/opencontext/resolution/object-permissions/expected.json +32 -0
  68. package/fixtures/opencontext/resolution/object-permissions/opencontext.yaml +14 -0
  69. package/fixtures/opencontext/resolution/redaction/context/customers/acme.json +21 -0
  70. package/fixtures/opencontext/resolution/redaction/expected.json +28 -0
  71. package/fixtures/opencontext/resolution/redaction/opencontext.yaml +19 -0
  72. package/fixtures/opencontext/resolution/supersession/context/pricing/enterprise.v1.md +12 -0
  73. package/fixtures/opencontext/resolution/supersession/context/pricing/enterprise.v2.md +14 -0
  74. package/fixtures/opencontext/resolution/supersession/expected.json +33 -0
  75. package/fixtures/opencontext/resolution/supersession/opencontext.yaml +11 -0
  76. package/fixtures/opencontext/valid/audit-event.json +26 -0
  77. package/fixtures/opencontext/valid/bundle.json +67 -0
  78. package/fixtures/opencontext/valid/decision.json +51 -0
  79. package/fixtures/opencontext/valid/diagnostic.json +37 -0
  80. package/fixtures/opencontext/valid/manifest-minimal.json +4 -0
  81. package/fixtures/opencontext/valid/manifest.json +134 -0
  82. package/fixtures/opencontext/valid/object-minimal.json +4 -0
  83. package/fixtures/opencontext/valid/object-policy.json +75 -0
  84. package/fixtures/opencontext/valid/object-structured.json +34 -0
  85. package/fixtures/opencontext/valid/object-untrusted.json +19 -0
  86. package/fixtures/opencontext/valid/provenance-canonical.json +4 -0
  87. package/fixtures/opencontext/valid/provenance.json +14 -0
  88. package/fixtures/opencontext/valid/role.json +38 -0
  89. package/fixtures/openontology/conformance.json +158 -0
  90. package/fixtures/openontology/invalid/action-no-permissions.json +13 -0
  91. package/fixtures/openontology/invalid/changeset-empty-operations.json +10 -0
  92. package/fixtures/openontology/invalid/changeset-unknown-op.json +15 -0
  93. package/fixtures/openontology/invalid/claim-both-objects.json +14 -0
  94. package/fixtures/openontology/invalid/claim-confidence-out-of-range.json +14 -0
  95. package/fixtures/openontology/invalid/claim-extra-property.json +14 -0
  96. package/fixtures/openontology/invalid/claim-unknown-status.json +13 -0
  97. package/fixtures/openontology/invalid/entity-missing-canonical-name.json +8 -0
  98. package/fixtures/openontology/invalid/evidence-unknown-selector.json +10 -0
  99. package/fixtures/openontology/invalid/manifest-bad-id.json +15 -0
  100. package/fixtures/openontology/invalid/manifest-bad-version.json +15 -0
  101. package/fixtures/openontology/invalid/manifest-no-maintainer.json +11 -0
  102. package/fixtures/openontology/invalid/relationship-no-range.json +11 -0
  103. package/fixtures/openontology/valid/action.json +29 -0
  104. package/fixtures/openontology/valid/approval.json +12 -0
  105. package/fixtures/openontology/valid/changeset.json +34 -0
  106. package/fixtures/openontology/valid/claim-relationship.json +23 -0
  107. package/fixtures/openontology/valid/claim-value.json +15 -0
  108. package/fixtures/openontology/valid/constraint.json +12 -0
  109. package/fixtures/openontology/valid/entity-type.json +16 -0
  110. package/fixtures/openontology/valid/entity.json +16 -0
  111. package/fixtures/openontology/valid/event.json +17 -0
  112. package/fixtures/openontology/valid/evidence.json +12 -0
  113. package/fixtures/openontology/valid/manifest.json +21 -0
  114. package/fixtures/openontology/valid/namespace.json +7 -0
  115. package/fixtures/openontology/valid/property.json +8 -0
  116. package/fixtures/openontology/valid/query-adhoc.json +16 -0
  117. package/fixtures/openontology/valid/query.json +24 -0
  118. package/fixtures/openontology/valid/relationship-type.json +16 -0
  119. package/fixtures/openontology/valid/review.json +17 -0
  120. package/fixtures/openontology/valid/source.json +13 -0
  121. package/fixtures/openprd/conformance.json +104 -0
  122. package/fixtures/openprd/invalid/bad-filename.md +41 -0
  123. package/fixtures/openprd/invalid/bad-id-format.md +41 -0
  124. package/fixtures/openprd/invalid/bad-status.md +41 -0
  125. package/fixtures/openprd/invalid/dates-backwards.md +43 -0
  126. package/fixtures/openprd/invalid/duplicate-requirement.md +42 -0
  127. package/fixtures/openprd/invalid/id-mismatch.md +41 -0
  128. package/fixtures/openprd/invalid/missing-section.md +37 -0
  129. package/fixtures/openprd/invalid/missing-title.md +40 -0
  130. package/fixtures/openprd/invalid/no-front-matter.md +33 -0
  131. package/fixtures/openprd/invalid/out-of-order.md +41 -0
  132. package/fixtures/openprd/invalid/superseded-without-replacement.md +41 -0
  133. package/fixtures/openprd/invalid/unknown-key.md +42 -0
  134. package/fixtures/openprd/valid/bold-requirements.md +41 -0
  135. package/fixtures/openprd/valid/full.md +48 -0
  136. package/fixtures/openprd/valid/minimal.md +41 -0
  137. package/fixtures/openprd/valid/none-sections.md +41 -0
  138. package/fixtures/openprd/valid/subsections.md +47 -0
  139. package/fixtures/openprd/valid/superseded.md +42 -0
  140. package/fixtures/openprd-prd.yaml +12 -0
  141. package/fixtures/pull-request.yaml +24 -0
  142. package/fixtures/repo.yaml +27 -0
  143. package/fixtures/task.yaml +26 -0
  144. package/package.json +91 -0
  145. package/schemas/agentad-ad-request.schema.json +32 -0
  146. package/schemas/agentad-ad-response.schema.json +31 -0
  147. package/schemas/agentad-ad.schema.json +79 -0
  148. package/schemas/agentad-campaign.schema.json +40 -0
  149. package/schemas/agentad-click.schema.json +23 -0
  150. package/schemas/agentad-impression.schema.json +18 -0
  151. package/schemas/agentad-placement.schema.json +46 -0
  152. package/schemas/logicsrc-account-audit-event.schema.json +31 -0
  153. package/schemas/logicsrc-account-grant.schema.json +48 -0
  154. package/schemas/logicsrc-account-provider.schema.json +31 -0
  155. package/schemas/logicsrc-agent.schema.json +51 -0
  156. package/schemas/logicsrc-connected-account.schema.json +39 -0
  157. package/schemas/logicsrc-credential-audit-event.schema.json +32 -0
  158. package/schemas/logicsrc-credential-provider.schema.json +28 -0
  159. package/schemas/logicsrc-credential-sync-plan.schema.json +56 -0
  160. package/schemas/logicsrc-credential-sync-run.schema.json +35 -0
  161. package/schemas/logicsrc-email-message.schema.json +22 -0
  162. package/schemas/logicsrc-event.schema.json +25 -0
  163. package/schemas/logicsrc-opencontext-audit-event.schema.json +69 -0
  164. package/schemas/logicsrc-opencontext-bundle.schema.json +210 -0
  165. package/schemas/logicsrc-opencontext-decision.schema.json +229 -0
  166. package/schemas/logicsrc-opencontext-diagnostic.schema.json +123 -0
  167. package/schemas/logicsrc-opencontext-manifest.schema.json +337 -0
  168. package/schemas/logicsrc-opencontext-object.schema.json +311 -0
  169. package/schemas/logicsrc-opencontext-provenance.schema.json +76 -0
  170. package/schemas/logicsrc-opencontext-role.schema.json +93 -0
  171. package/schemas/logicsrc-openontology-action.schema.json +90 -0
  172. package/schemas/logicsrc-openontology-approval.schema.json +39 -0
  173. package/schemas/logicsrc-openontology-changeset.schema.json +168 -0
  174. package/schemas/logicsrc-openontology-claim.schema.json +148 -0
  175. package/schemas/logicsrc-openontology-constraint.schema.json +104 -0
  176. package/schemas/logicsrc-openontology-entity-type.schema.json +107 -0
  177. package/schemas/logicsrc-openontology-entity.schema.json +59 -0
  178. package/schemas/logicsrc-openontology-event.schema.json +60 -0
  179. package/schemas/logicsrc-openontology-evidence.schema.json +121 -0
  180. package/schemas/logicsrc-openontology-manifest.schema.json +148 -0
  181. package/schemas/logicsrc-openontology-namespace.schema.json +21 -0
  182. package/schemas/logicsrc-openontology-package.schema.json +73 -0
  183. package/schemas/logicsrc-openontology-property.schema.json +83 -0
  184. package/schemas/logicsrc-openontology-query.schema.json +207 -0
  185. package/schemas/logicsrc-openontology-relationship-type.schema.json +57 -0
  186. package/schemas/logicsrc-openontology-review.schema.json +37 -0
  187. package/schemas/logicsrc-openontology-source.schema.json +43 -0
  188. package/schemas/logicsrc-plugin.schema.json +35 -0
  189. package/schemas/logicsrc-pull-request.schema.json +73 -0
  190. package/schemas/logicsrc-repo.schema.json +73 -0
  191. package/schemas/logicsrc-run.schema.json +69 -0
  192. package/schemas/logicsrc-social-post.schema.json +26 -0
  193. package/schemas/logicsrc-task.schema.json +114 -0
  194. package/schemas/openprd-prd.schema.json +79 -0
@@ -0,0 +1,41 @@
1
+ ---
2
+ openprd: "0.2"
3
+ id: "0001"
4
+ title: Expand the parked-domain service
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
+
@@ -0,0 +1,41 @@
1
+ ---
2
+ openprd: "0.2"
3
+ id: "0005"
4
+ title: Keep every section even when empty
5
+ status: Accepted
6
+ authors:
7
+ - a@example.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
+
@@ -0,0 +1,47 @@
1
+ ---
2
+ openprd: "0.2"
3
+ id: "0003"
4
+ title: Organize a long requirements section
5
+ status: Draft
6
+ authors:
7
+ - a@example.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
+ ### Identity
29
+
30
+ - R1 [P0] Capability one.
31
+
32
+ ### Storage
33
+
34
+ - R2 [P0] Capability two.
35
+
36
+ ## UX Notes
37
+
38
+ _None._
39
+
40
+ ## Success Metrics
41
+
42
+ _None._
43
+
44
+ ## Risks & Open Questions
45
+
46
+ _None._
47
+
@@ -0,0 +1,42 @@
1
+ ---
2
+ openprd: "0.2"
3
+ id: "0004"
4
+ title: Retire the old flow
5
+ status: Superseded
6
+ authors:
7
+ - a@example.com
8
+ superseded-by: "0005"
9
+ ---
10
+
11
+ ## Problem
12
+
13
+ The thing is broken and it costs us money every week.
14
+
15
+ ## Goals
16
+
17
+ _None._
18
+
19
+ ## Non-Goals
20
+
21
+ _None._
22
+
23
+ ## Users
24
+
25
+ _None._
26
+
27
+ ## Requirements
28
+
29
+ - R1 [P0] First required capability.
30
+
31
+ ## UX Notes
32
+
33
+ _None._
34
+
35
+ ## Success Metrics
36
+
37
+ _None._
38
+
39
+ ## Risks & Open Questions
40
+
41
+ _None._
42
+
@@ -0,0 +1,12 @@
1
+ openprd: "0.2"
2
+ id: "0001"
3
+ title: Expand the parked-domain service
4
+ status: Draft
5
+ authors:
6
+ - anthony@profullstack.com
7
+ repo: moshcoder/moshcoding
8
+ created: 2026-07-12
9
+ updated: 2026-07-12
10
+ tags:
11
+ - growth
12
+ - monetization
@@ -0,0 +1,24 @@
1
+ type: logicsrc.pull_request
2
+ version: "1.0"
3
+ repo: agentgit-demo
4
+ number: 7
5
+ title: Add Forgejo backend adapter
6
+ description: Implements the M1 ForgeAdapter against the Forgejo REST API.
7
+ author_did: contributor.profullstack
8
+ source_branch: feat/forgejo-adapter
9
+ target_branch: main
10
+ head_sha: abc1234
11
+ task: task-42
12
+ status: approved
13
+ checks:
14
+ - name: ci
15
+ status: passing
16
+ url: https://git.profullstack.com/owner/agentgit-demo/actions
17
+ reviews:
18
+ - reviewer_did: maintainer.profullstack
19
+ decision: approve
20
+ reputation: 25
21
+ summary: Looks good, policy-gated merge verified.
22
+ created_at: 2026-06-14T01:00:00Z
23
+ created_at: 2026-06-14T00:30:00Z
24
+ updated_at: 2026-06-14T01:05:00Z
@@ -0,0 +1,27 @@
1
+ type: logicsrc.repo
2
+ version: "1.0"
3
+ name: AgentGit Demo
4
+ slug: agentgit-demo
5
+ description: Reference AgentGit repository hosted on git.profullstack.com.
6
+ owner_did: owner.profullstack
7
+ board: /agentgit
8
+ visibility: members_only
9
+ default_branch: main
10
+ backend:
11
+ provider: forgejo
12
+ url: https://git.profullstack.com
13
+ external_id: owner/agentgit-demo
14
+ members:
15
+ - did: maintainer.profullstack
16
+ role: maintainer
17
+ - did: contributor.profullstack
18
+ role: contributor
19
+ merge_policy:
20
+ min_reviews: 1
21
+ require_passing_checks: true
22
+ reviewer_reputation_min: 0
23
+ escrow_required: false
24
+ allow_agent_merge: true
25
+ allowed_merge_methods:
26
+ - squash
27
+ created_at: 2026-06-14T00:00:00Z
@@ -0,0 +1,26 @@
1
+ type: logicsrc.task
2
+ version: "0.1"
3
+ title: Test checkout flow
4
+ description: Verify the storefront checkout journey across desktop and mobile.
5
+ board: /qa
6
+ status: open
7
+ budget:
8
+ amount: 25
9
+ currency: USDC
10
+ creator_did: anthony.coinpay
11
+ agent_allowed: true
12
+ human_allowed: true
13
+ target_url: https://example.com/checkout
14
+ skills:
15
+ - qa
16
+ - playwright
17
+ - nextjs
18
+ acceptance_criteria:
19
+ - User can add item to cart
20
+ - User can reach payment page
21
+ - Mobile layout works
22
+ - Console has no critical errors
23
+ permissions:
24
+ browser.visit_url: true
25
+ github.create_issue: true
26
+ files.read_attached: true
package/package.json ADDED
@@ -0,0 +1,91 @@
1
+ {
2
+ "name": "@logicsrc/schemas",
3
+ "version": "0.1.0",
4
+ "description": "LogicSRC JSON schemas for tasks, agents, runs, events, plugins, the AgentAd ad standard, the OpenOntology knowledge contracts, and the OpenContext context plane.",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/profullstack/logicsrc.git",
10
+ "directory": "packages/schemas"
11
+ },
12
+ "homepage": "https://github.com/profullstack/logicsrc/tree/master/packages/schemas",
13
+ "keywords": [
14
+ "advertising",
15
+ "agentad",
16
+ "agents",
17
+ "cli",
18
+ "context",
19
+ "json-schema",
20
+ "knowledge-graph",
21
+ "logicsrc",
22
+ "ontology",
23
+ "opencontext",
24
+ "openontology",
25
+ "standards"
26
+ ],
27
+ "publishConfig": {
28
+ "access": "public"
29
+ },
30
+ "exports": {
31
+ "./account-audit-event": "./schemas/logicsrc-account-audit-event.schema.json",
32
+ "./account-grant": "./schemas/logicsrc-account-grant.schema.json",
33
+ "./account-provider": "./schemas/logicsrc-account-provider.schema.json",
34
+ "./agent": "./schemas/logicsrc-agent.schema.json",
35
+ "./agentad-ad": "./schemas/agentad-ad.schema.json",
36
+ "./agentad-ad-request": "./schemas/agentad-ad-request.schema.json",
37
+ "./agentad-ad-response": "./schemas/agentad-ad-response.schema.json",
38
+ "./agentad-campaign": "./schemas/agentad-campaign.schema.json",
39
+ "./agentad-click": "./schemas/agentad-click.schema.json",
40
+ "./agentad-impression": "./schemas/agentad-impression.schema.json",
41
+ "./agentad-placement": "./schemas/agentad-placement.schema.json",
42
+ "./connected-account": "./schemas/logicsrc-connected-account.schema.json",
43
+ "./credential-audit-event": "./schemas/logicsrc-credential-audit-event.schema.json",
44
+ "./credential-provider": "./schemas/logicsrc-credential-provider.schema.json",
45
+ "./credential-sync-plan": "./schemas/logicsrc-credential-sync-plan.schema.json",
46
+ "./credential-sync-run": "./schemas/logicsrc-credential-sync-run.schema.json",
47
+ "./email-message": "./schemas/logicsrc-email-message.schema.json",
48
+ "./event": "./schemas/logicsrc-event.schema.json",
49
+ "./opencontext-audit-event": "./schemas/logicsrc-opencontext-audit-event.schema.json",
50
+ "./opencontext-bundle": "./schemas/logicsrc-opencontext-bundle.schema.json",
51
+ "./opencontext-conformance": "./fixtures/opencontext/conformance.json",
52
+ "./opencontext-decision": "./schemas/logicsrc-opencontext-decision.schema.json",
53
+ "./opencontext-diagnostic": "./schemas/logicsrc-opencontext-diagnostic.schema.json",
54
+ "./opencontext-manifest": "./schemas/logicsrc-opencontext-manifest.schema.json",
55
+ "./opencontext-object": "./schemas/logicsrc-opencontext-object.schema.json",
56
+ "./opencontext-provenance": "./schemas/logicsrc-opencontext-provenance.schema.json",
57
+ "./opencontext-role": "./schemas/logicsrc-opencontext-role.schema.json",
58
+ "./openontology-action": "./schemas/logicsrc-openontology-action.schema.json",
59
+ "./openontology-approval": "./schemas/logicsrc-openontology-approval.schema.json",
60
+ "./openontology-changeset": "./schemas/logicsrc-openontology-changeset.schema.json",
61
+ "./openontology-claim": "./schemas/logicsrc-openontology-claim.schema.json",
62
+ "./openontology-conformance": "./fixtures/openontology/conformance.json",
63
+ "./openontology-constraint": "./schemas/logicsrc-openontology-constraint.schema.json",
64
+ "./openontology-entity": "./schemas/logicsrc-openontology-entity.schema.json",
65
+ "./openontology-entity-type": "./schemas/logicsrc-openontology-entity-type.schema.json",
66
+ "./openontology-event": "./schemas/logicsrc-openontology-event.schema.json",
67
+ "./openontology-evidence": "./schemas/logicsrc-openontology-evidence.schema.json",
68
+ "./openontology-manifest": "./schemas/logicsrc-openontology-manifest.schema.json",
69
+ "./openontology-namespace": "./schemas/logicsrc-openontology-namespace.schema.json",
70
+ "./openontology-package": "./schemas/logicsrc-openontology-package.schema.json",
71
+ "./openontology-property": "./schemas/logicsrc-openontology-property.schema.json",
72
+ "./openontology-query": "./schemas/logicsrc-openontology-query.schema.json",
73
+ "./openontology-relationship-type": "./schemas/logicsrc-openontology-relationship-type.schema.json",
74
+ "./openontology-review": "./schemas/logicsrc-openontology-review.schema.json",
75
+ "./openontology-source": "./schemas/logicsrc-openontology-source.schema.json",
76
+ "./openprd-prd": "./schemas/openprd-prd.schema.json",
77
+ "./plugin": "./schemas/logicsrc-plugin.schema.json",
78
+ "./pull-request": "./schemas/logicsrc-pull-request.schema.json",
79
+ "./repo": "./schemas/logicsrc-repo.schema.json",
80
+ "./run": "./schemas/logicsrc-run.schema.json",
81
+ "./social-post": "./schemas/logicsrc-social-post.schema.json",
82
+ "./task": "./schemas/logicsrc-task.schema.json"
83
+ },
84
+ "files": [
85
+ "schemas",
86
+ "fixtures"
87
+ ],
88
+ "scripts": {
89
+ "build": "node -e \"console.log('schemas: no build step')\""
90
+ }
91
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.logicsrc.com/agentad-ad-request.schema.json",
4
+ "title": "AgentAd Ad Request",
5
+ "description": "A request from a CLI/agent for an ad to fill a placement, with optional runtime context for relevance.",
6
+ "type": "object",
7
+ "required": ["type", "version", "placement_id"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "type": { "const": "agentad.ad_request" },
11
+ "version": { "type": "string", "pattern": "^\\d+\\.\\d+(\\.\\d+)?$" },
12
+ "placement_id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9_-]*$" },
13
+ "publisher_did": { "type": "string", "pattern": "^[a-z0-9][a-z0-9._-]*\\.[a-z0-9][a-z0-9._-]*$" },
14
+ "consumer": {
15
+ "type": "string",
16
+ "enum": ["human", "agent"],
17
+ "description": "Who will read the ad. Agents SHOULD receive machine_readable payloads and clear disclosure."
18
+ },
19
+ "context": {
20
+ "type": "object",
21
+ "additionalProperties": false,
22
+ "properties": {
23
+ "tool": { "type": "string", "description": "Host tool identifier, e.g. 'claude-code'." },
24
+ "keywords": { "type": "array", "items": { "type": "string" }, "uniqueItems": true },
25
+ "language": { "type": "string" },
26
+ "locale": { "type": "string" }
27
+ }
28
+ },
29
+ "format_override": { "type": "string", "enum": ["text", "markdown", "ansi", "banner", "json"] },
30
+ "count": { "type": "integer", "minimum": 1, "maximum": 10, "default": 1 }
31
+ }
32
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.logicsrc.com/agentad-ad-response.schema.json",
4
+ "title": "AgentAd Ad Response",
5
+ "description": "The network's response to an ad request: zero or more filled ads plus signed tracking tokens for impression/click events.",
6
+ "type": "object",
7
+ "required": ["type", "version", "request_id", "ads"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "type": { "const": "agentad.ad_response" },
11
+ "version": { "type": "string", "pattern": "^\\d+\\.\\d+(\\.\\d+)?$" },
12
+ "request_id": { "type": "string", "minLength": 1 },
13
+ "ads": {
14
+ "type": "array",
15
+ "items": {
16
+ "type": "object",
17
+ "required": ["ad", "impression_token"],
18
+ "additionalProperties": false,
19
+ "properties": {
20
+ "ad": { "type": "object", "description": "An agentad.ad document; validate separately against agentad-ad.schema.json." },
21
+ "impression_token": { "type": "string", "minLength": 1, "description": "Opaque token to confirm the impression and to mint a click token." },
22
+ "rendered": { "type": "string", "description": "Server-rendered representation in the requested format." }
23
+ }
24
+ }
25
+ },
26
+ "no_fill_reason": {
27
+ "type": "string",
28
+ "enum": ["no_inventory", "frequency_capped", "blocked_category", "invalid_request"]
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,79 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.logicsrc.com/agentad-ad.schema.json",
4
+ "title": "AgentAd Ad",
5
+ "description": "A single advertising unit served to CLI tools and AI agents. Ads MUST be disclosed and SHOULD carry a machine-readable payload so agents can reason about them.",
6
+ "type": "object",
7
+ "required": ["type", "version", "id", "advertiser_did", "format", "title", "url", "disclosure"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "type": { "const": "agentad.ad" },
11
+ "version": { "type": "string", "pattern": "^\\d+\\.\\d+(\\.\\d+)?$" },
12
+ "id": { "$ref": "#/$defs/id" },
13
+ "campaign_id": { "$ref": "#/$defs/id" },
14
+ "advertiser_did": { "$ref": "#/$defs/did" },
15
+ "format": {
16
+ "type": "string",
17
+ "enum": ["text", "markdown", "ansi", "banner", "json"],
18
+ "description": "Render format. 'json' is the agent-native structured format; 'ansi'/'banner' target human CLI surfaces."
19
+ },
20
+ "title": { "type": "string", "minLength": 1, "maxLength": 120 },
21
+ "body": { "type": "string", "maxLength": 2000 },
22
+ "url": { "type": "string", "format": "uri" },
23
+ "cta": { "type": "string", "maxLength": 60, "description": "Call to action label, e.g. 'Install' or 'Read docs'." },
24
+ "disclosure": {
25
+ "type": "object",
26
+ "description": "Transparency contract. Every ad is labeled as sponsored so humans and agents can distinguish it from organic output.",
27
+ "required": ["sponsored", "label"],
28
+ "additionalProperties": false,
29
+ "properties": {
30
+ "sponsored": { "const": true },
31
+ "label": { "type": "string", "minLength": 1, "maxLength": 40, "default": "Sponsored" },
32
+ "advertiser_name": { "type": "string", "maxLength": 120 }
33
+ }
34
+ },
35
+ "machine_readable": {
36
+ "type": "object",
37
+ "description": "Optional structured payload an agent can parse instead of (or alongside) the rendered text.",
38
+ "additionalProperties": true
39
+ },
40
+ "targeting": { "$ref": "#/$defs/targeting" },
41
+ "media": {
42
+ "type": "object",
43
+ "additionalProperties": false,
44
+ "properties": {
45
+ "ansi_art": { "type": "string", "description": "Pre-rendered ANSI/ASCII art for banner format." },
46
+ "icon": { "type": "string", "format": "uri" }
47
+ }
48
+ },
49
+ "pricing": {
50
+ "type": "object",
51
+ "additionalProperties": false,
52
+ "properties": {
53
+ "model": { "type": "string", "enum": ["cpm", "cpc", "cpa", "flat"] },
54
+ "bid": { "type": "number", "minimum": 0 },
55
+ "currency": { "type": "string", "minLength": 2, "maxLength": 12 }
56
+ }
57
+ },
58
+ "expires_at": { "type": "string", "format": "date-time" }
59
+ },
60
+ "$defs": {
61
+ "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9_-]*$", "minLength": 1, "maxLength": 64 },
62
+ "did": { "type": "string", "pattern": "^[a-z0-9][a-z0-9._-]*\\.[a-z0-9][a-z0-9._-]*$" },
63
+ "targeting": {
64
+ "type": "object",
65
+ "additionalProperties": false,
66
+ "properties": {
67
+ "surfaces": {
68
+ "type": "array",
69
+ "items": { "type": "string", "enum": ["cli", "tui", "agent", "ci"] },
70
+ "uniqueItems": true
71
+ },
72
+ "keywords": { "type": "array", "items": { "type": "string", "minLength": 1 }, "uniqueItems": true },
73
+ "tools": { "type": "array", "items": { "type": "string", "minLength": 1 }, "uniqueItems": true, "description": "Host CLI/agent identifiers to target, e.g. 'claude-code', 'gh'." },
74
+ "languages": { "type": "array", "items": { "type": "string" }, "uniqueItems": true },
75
+ "exclude_keywords": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }
76
+ }
77
+ }
78
+ }
79
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.logicsrc.com/agentad-campaign.schema.json",
4
+ "title": "AgentAd Campaign",
5
+ "description": "An advertiser campaign grouping one or more ads under a shared budget, schedule, and targeting policy.",
6
+ "type": "object",
7
+ "required": ["type", "version", "id", "advertiser_did", "name", "budget"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "type": { "const": "agentad.campaign" },
11
+ "version": { "type": "string", "pattern": "^\\d+\\.\\d+(\\.\\d+)?$" },
12
+ "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9_-]*$", "minLength": 1, "maxLength": 64 },
13
+ "advertiser_did": { "type": "string", "pattern": "^[a-z0-9][a-z0-9._-]*\\.[a-z0-9][a-z0-9._-]*$" },
14
+ "name": { "type": "string", "minLength": 1, "maxLength": 120 },
15
+ "status": { "type": "string", "enum": ["draft", "active", "paused", "completed"], "default": "draft" },
16
+ "budget": {
17
+ "type": "object",
18
+ "required": ["total", "currency"],
19
+ "additionalProperties": false,
20
+ "properties": {
21
+ "total": { "type": "number", "minimum": 0 },
22
+ "daily_cap": { "type": "number", "minimum": 0 },
23
+ "currency": { "type": "string", "minLength": 2, "maxLength": 12 }
24
+ }
25
+ },
26
+ "schedule": {
27
+ "type": "object",
28
+ "additionalProperties": false,
29
+ "properties": {
30
+ "start_at": { "type": "string", "format": "date-time" },
31
+ "end_at": { "type": "string", "format": "date-time" }
32
+ }
33
+ },
34
+ "ad_ids": {
35
+ "type": "array",
36
+ "items": { "type": "string", "pattern": "^[a-z0-9][a-z0-9_-]*$" },
37
+ "uniqueItems": true
38
+ }
39
+ }
40
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.logicsrc.com/agentad-click.schema.json",
4
+ "title": "AgentAd Click",
5
+ "description": "A consumer action on an ad (a click, install, or conversion). For agents, 'action' records the structured intent taken.",
6
+ "type": "object",
7
+ "required": ["type", "version", "click_token", "ad_id", "occurred_at"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "type": { "const": "agentad.click" },
11
+ "version": { "type": "string", "pattern": "^\\d+\\.\\d+(\\.\\d+)?$" },
12
+ "click_token": { "type": "string", "minLength": 1 },
13
+ "ad_id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9_-]*$" },
14
+ "placement_id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9_-]*$" },
15
+ "action": {
16
+ "type": "string",
17
+ "enum": ["click", "open_url", "copy_command", "install", "convert"],
18
+ "default": "click"
19
+ },
20
+ "consumer": { "type": "string", "enum": ["human", "agent"] },
21
+ "occurred_at": { "type": "string", "format": "date-time" }
22
+ }
23
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.logicsrc.com/agentad-impression.schema.json",
4
+ "title": "AgentAd Impression",
5
+ "description": "A confirmed display of an ad. Recorded only after the ad was actually rendered to the consumer.",
6
+ "type": "object",
7
+ "required": ["type", "version", "impression_token", "ad_id", "occurred_at"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "type": { "const": "agentad.impression" },
11
+ "version": { "type": "string", "pattern": "^\\d+\\.\\d+(\\.\\d+)?$" },
12
+ "impression_token": { "type": "string", "minLength": 1 },
13
+ "ad_id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9_-]*$" },
14
+ "placement_id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9_-]*$" },
15
+ "consumer": { "type": "string", "enum": ["human", "agent"] },
16
+ "occurred_at": { "type": "string", "format": "date-time" }
17
+ }
18
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.logicsrc.com/agentad-placement.schema.json",
4
+ "title": "AgentAd Placement",
5
+ "description": "A slot registered by a publisher (a CLI tool or agent) where AgentAd units may be rendered.",
6
+ "type": "object",
7
+ "required": ["type", "version", "id", "publisher_did", "surface", "accepted_formats"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "type": { "const": "agentad.placement" },
11
+ "version": { "type": "string", "pattern": "^\\d+\\.\\d+(\\.\\d+)?$" },
12
+ "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9_-]*$", "minLength": 1, "maxLength": 64 },
13
+ "publisher_did": { "type": "string", "pattern": "^[a-z0-9][a-z0-9._-]*\\.[a-z0-9][a-z0-9._-]*$" },
14
+ "surface": { "type": "string", "enum": ["cli", "tui", "agent", "ci"] },
15
+ "accepted_formats": {
16
+ "type": "array",
17
+ "minItems": 1,
18
+ "items": { "type": "string", "enum": ["text", "markdown", "ansi", "banner", "json"] },
19
+ "uniqueItems": true
20
+ },
21
+ "dimensions": {
22
+ "type": "object",
23
+ "additionalProperties": false,
24
+ "properties": {
25
+ "max_width": { "type": "integer", "minimum": 1, "description": "Max columns for text/ansi rendering." },
26
+ "max_lines": { "type": "integer", "minimum": 1 }
27
+ }
28
+ },
29
+ "context_tags": {
30
+ "type": "array",
31
+ "items": { "type": "string", "minLength": 1 },
32
+ "uniqueItems": true,
33
+ "description": "Keywords describing the host context, used for relevance matching."
34
+ },
35
+ "frequency_cap": {
36
+ "type": "object",
37
+ "additionalProperties": false,
38
+ "properties": {
39
+ "max_per_session": { "type": "integer", "minimum": 0 },
40
+ "max_per_day": { "type": "integer", "minimum": 0 }
41
+ }
42
+ },
43
+ "allow_categories": { "type": "array", "items": { "type": "string" }, "uniqueItems": true },
44
+ "block_categories": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }
45
+ }
46
+ }