@plurnk/plurnk-contracts 1.7.0 → 1.9.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 (104) hide show
  1. package/SPEC.md +227 -63
  2. package/dist/conformance/agui-v1.json +541 -0
  3. package/dist/plurnk.gemma.gbnf +26 -22
  4. package/dist/plurnk.qwen.gbnf +26 -22
  5. package/dist/schema/A2aAgentDefinition.json +44 -0
  6. package/dist/schema/AcpPlan.json +63 -0
  7. package/dist/schema/AguiClientConformance.json +74 -0
  8. package/dist/schema/AguiConformanceKit.json +111 -0
  9. package/dist/schema/AguiDiscovery.json +70 -0
  10. package/dist/schema/ClientDisplayCapabilities.json +1 -1
  11. package/dist/schema/ClientInteractionProjection.json +2 -2
  12. package/dist/schema/ClientInteractionRequest.json +1 -1
  13. package/dist/schema/ClientInteractionResolution.json +1 -1
  14. package/dist/schema/ClientStatement.json +16 -11
  15. package/dist/schema/EntryReadResult.json +2 -2
  16. package/dist/schema/FunctionalityCandidate.json +33 -0
  17. package/dist/schema/FunctionalityDefinitionState.json +33 -0
  18. package/dist/schema/FunctionalityDiscoverQuery.json +16 -0
  19. package/dist/schema/FunctionalityDiscoverResult.json +15 -0
  20. package/dist/schema/FunctionalityListResult.json +15 -0
  21. package/dist/schema/FunctionalityMutationResult.json +16 -0
  22. package/dist/schema/LineMarker.json +1 -1
  23. package/dist/schema/LoopFlags.json +1 -1
  24. package/dist/schema/MatcherBody.json +1 -1
  25. package/dist/schema/McpConfigurationOverlay.json +25 -0
  26. package/dist/schema/McpServerDefinition.json +3 -2
  27. package/dist/schema/McpServerOptions.json +36 -0
  28. package/dist/schema/ModelCatalogPage.json +122 -0
  29. package/dist/schema/ModelCatalogQuery.json +32 -0
  30. package/dist/schema/ModelReadiness.json +47 -0
  31. package/dist/schema/ModelRoute.json +23 -0
  32. package/dist/schema/Notice.json +1 -1
  33. package/dist/schema/OperationResult.json +3 -3
  34. package/dist/schema/ParsedPath.json +1 -1
  35. package/dist/schema/Plan.json +52 -0
  36. package/dist/schema/PlurnkStatement.json +57 -40
  37. package/dist/schema/Position.json +1 -1
  38. package/dist/schema/ProblemDetails.json +1 -1
  39. package/dist/schema/ProposalDisposition.json +1 -1
  40. package/dist/schema/ProposalProjection.json +5 -6
  41. package/dist/schema/ProviderAccounting.json +3 -3
  42. package/dist/schema/ProviderCost.json +1 -1
  43. package/dist/schema/ProviderRequestAccounting.json +3 -3
  44. package/dist/schema/ProviderUsage.json +1 -1
  45. package/dist/schema/RangeExtent.json +1 -1
  46. package/dist/schema/ReasoningPolicy.json +7 -0
  47. package/dist/schema/ResourceSelection.json +3 -3
  48. package/dist/schema/SendBody.json +1 -1
  49. package/dist/schema/SkillDefinition.json +26 -0
  50. package/dist/schema/TextLineMarker.json +1 -1
  51. package/dist/schema/TextRegion.json +1 -1
  52. package/dist/src/AcpPlanValue.d.ts +7 -0
  53. package/dist/src/AcpPlanValue.d.ts.map +1 -0
  54. package/dist/src/AcpPlanValue.js +32 -0
  55. package/dist/src/AcpPlanValue.js.map +1 -0
  56. package/dist/src/AguiConformance.d.ts +11 -0
  57. package/dist/src/AguiConformance.d.ts.map +1 -0
  58. package/dist/src/AguiConformance.js +16 -0
  59. package/dist/src/AguiConformance.js.map +1 -0
  60. package/dist/src/ApplicationPort.d.ts +271 -0
  61. package/dist/src/ApplicationPort.d.ts.map +1 -0
  62. package/dist/src/ApplicationPort.js +2 -0
  63. package/dist/src/ApplicationPort.js.map +1 -0
  64. package/dist/src/AstBuilder.d.ts.map +1 -1
  65. package/dist/src/AstBuilder.js +44 -22
  66. package/dist/src/AstBuilder.js.map +1 -1
  67. package/dist/src/PlanValue.d.ts +10 -0
  68. package/dist/src/PlanValue.d.ts.map +1 -0
  69. package/dist/src/PlanValue.js +58 -0
  70. package/dist/src/PlanValue.js.map +1 -0
  71. package/dist/src/PlurnkErrorStrategy.d.ts.map +1 -1
  72. package/dist/src/PlurnkErrorStrategy.js +33 -19
  73. package/dist/src/PlurnkErrorStrategy.js.map +1 -1
  74. package/dist/src/PlurnkParser.js +3 -3
  75. package/dist/src/PlurnkParser.js.map +1 -1
  76. package/dist/src/Problems.js +1 -1
  77. package/dist/src/Validator.d.ts +68 -1
  78. package/dist/src/Validator.d.ts.map +1 -1
  79. package/dist/src/Validator.js +373 -0
  80. package/dist/src/Validator.js.map +1 -1
  81. package/dist/src/generated/plurnkLexer.d.ts +30 -28
  82. package/dist/src/generated/plurnkLexer.d.ts.map +1 -1
  83. package/dist/src/generated/plurnkLexer.js +398 -381
  84. package/dist/src/generated/plurnkLexer.js.map +1 -1
  85. package/dist/src/generated/plurnkParser.d.ts +56 -39
  86. package/dist/src/generated/plurnkParser.d.ts.map +1 -1
  87. package/dist/src/generated/plurnkParser.js +644 -450
  88. package/dist/src/generated/plurnkParser.js.map +1 -1
  89. package/dist/src/generated/plurnkParserVisitor.d.ts +7 -7
  90. package/dist/src/generated/plurnkParserVisitor.d.ts.map +1 -1
  91. package/dist/src/generated/plurnkParserVisitor.js +6 -6
  92. package/dist/src/generated/plurnkParserVisitor.js.map +1 -1
  93. package/dist/src/index.d.ts +7 -2
  94. package/dist/src/index.d.ts.map +1 -1
  95. package/dist/src/index.js +5 -2
  96. package/dist/src/index.js.map +1 -1
  97. package/dist/src/types.d.ts +2 -1
  98. package/dist/src/types.d.ts.map +1 -1
  99. package/dist/src/types.generated.d.ts +430 -21
  100. package/dist/src/types.generated.d.ts.map +1 -1
  101. package/dist/src/types.js +4 -0
  102. package/dist/src/types.js.map +1 -1
  103. package/package.json +7 -3
  104. package/plurnk.md +67 -78
@@ -0,0 +1,33 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.plurnk.xyz/v0/FunctionalityDefinitionState.json",
4
+ "title": "FunctionalityDefinitionState",
5
+ "description": "One managed definition as a Worker sees it: its origin, desired enabledness, and current preparation outcome. Credentials never appear.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": ["alias", "origin", "state"],
9
+ "properties": {
10
+ "alias": { "type": "string", "minLength": 1 },
11
+ "origin": { "enum": ["service", "worker"] },
12
+ "state": {
13
+ "description": "disabled: available, model-invisible. active: enabled and prepared. unavailable: enabled but preparation has an exact Problem. authorization-required: enabled and awaiting a protocol continuation.",
14
+ "enum": ["disabled", "active", "unavailable", "authorization-required"]
15
+ },
16
+ "definition": { "type": "object" },
17
+ "detail": {
18
+ "description": "Family-owned presentation facts about an active definition (a server's protocol version and tool names, an agent card summary). Never credentials, never authority.",
19
+ "type": "object"
20
+ },
21
+ "problem": { "$ref": "https://schemas.plurnk.xyz/v0/ProblemDetails.json" },
22
+ "authorization": {
23
+ "type": "object",
24
+ "additionalProperties": false,
25
+ "required": ["url"],
26
+ "properties": { "url": { "type": "string", "minLength": 1 } }
27
+ }
28
+ },
29
+ "allOf": [
30
+ { "if": { "properties": { "state": { "const": "unavailable" } } }, "then": { "required": ["problem"] } },
31
+ { "if": { "properties": { "state": { "const": "authorization-required" } } }, "then": { "required": ["authorization"] } }
32
+ ]
33
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.plurnk.xyz/v0/FunctionalityDiscoverQuery.json",
4
+ "title": "FunctionalityDiscoverQuery",
5
+ "description": "A family-neutral discovery request: a search term or an explicit source such as a URL, path, registry reference, or package.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "properties": {
9
+ "query": { "type": "string", "minLength": 1 },
10
+ "source": { "type": "string", "minLength": 1 },
11
+ "configuration": {
12
+ "description": "Caller-supplied configuration material the family interprets as candidates (a client's own PLURNK_MCP_* environment, a local directory list). It contributes candidates with client-configuration provenance; it never becomes durable authority.",
13
+ "type": "object"
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.plurnk.xyz/v0/FunctionalityDiscoverResult.json",
4
+ "title": "FunctionalityDiscoverResult",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["family", "candidates"],
8
+ "properties": {
9
+ "family": { "type": "string", "minLength": 1 },
10
+ "candidates": {
11
+ "type": "array",
12
+ "items": { "$ref": "https://schemas.plurnk.xyz/v0/FunctionalityCandidate.json" }
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.plurnk.xyz/v0/FunctionalityListResult.json",
4
+ "title": "FunctionalityListResult",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["family", "definitions"],
8
+ "properties": {
9
+ "family": { "type": "string", "minLength": 1 },
10
+ "definitions": {
11
+ "type": "array",
12
+ "items": { "$ref": "https://schemas.plurnk.xyz/v0/FunctionalityDefinitionState.json" }
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.plurnk.xyz/v0/FunctionalityMutationResult.json",
4
+ "description": "The outcome of add, enable, disable, or remove: the committed state of the one affected alias. 201 added, 200 settled, 202 awaiting a protocol continuation.",
5
+ "title": "FunctionalityMutationResult",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": ["status", "family", "alias"],
9
+ "properties": {
10
+ "status": { "type": "integer", "enum": [200, 201, 202] },
11
+ "family": { "type": "string", "minLength": 1 },
12
+ "alias": { "type": "string", "minLength": 1 },
13
+ "definition": { "$ref": "https://schemas.plurnk.xyz/v0/FunctionalityDefinitionState.json" },
14
+ "removed": { "const": true }
15
+ }
16
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schemas.plurnk.dev/v0/LineMarker.json",
3
+ "$id": "https://schemas.plurnk.xyz/v0/LineMarker.json",
4
4
  "title": "LineMarker",
5
5
  "description": "The ordered numeric components parsed from a `<scope>` slot. AstBuilder converts each lexical number to a JavaScript number; the operation owner assigns arity and meaning, including text coordinates, result positions, timing, mutation anchors, and an optional leading semantic threshold.",
6
6
  "type": "object",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schemas.plurnk.dev/v0/LoopFlags.json",
3
+ "$id": "https://schemas.plurnk.xyz/v0/LoopFlags.json",
4
4
  "title": "LoopFlags",
5
5
  "description": "The complete effective policy posture of one model loop. Persisted partial objects are expanded to this shape by the runtime owner before use or projection.",
6
6
  "type": "object",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schemas.plurnk.dev/v0/MatcherBody.json",
3
+ "$id": "https://schemas.plurnk.xyz/v0/MatcherBody.json",
4
4
  "title": "MatcherBody",
5
5
  "description": "Parsed body of a FIND/OPEN/FOLD statement, discriminated on `dialect`. The dialect is determined by the body's leading characters (`//` xpath, `/` regex, `$` jsonpath, `~` semantic, `@` graph, else glob). The regex variant carries pattern and flags split out of the `/pattern/flags` literal; every variant remains JSON-serializable.",
6
6
  "oneOf": [
@@ -0,0 +1,25 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.plurnk.xyz/v0/McpConfigurationOverlay.json",
4
+ "title": "McpConfigurationOverlay",
5
+ "type": "object",
6
+ "propertyNames": {
7
+ "allOf": [
8
+ {
9
+ "pattern": "^PLURNK_MCP_[A-Za-z0-9_.+-]+$"
10
+ },
11
+ {
12
+ "not": {
13
+ "enum": [
14
+ "PLURNK_MCP_CONNECT_TIMEOUT",
15
+ "PLURNK_MCP_REQUEST_TIMEOUT",
16
+ "PLURNK_MCP_ENABLED"
17
+ ]
18
+ }
19
+ }
20
+ ]
21
+ },
22
+ "additionalProperties": {
23
+ "type": "string"
24
+ }
25
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schemas.plurnk.dev/v0/McpServerDefinition.json",
3
+ "$id": "https://schemas.plurnk.xyz/v0/McpServerDefinition.json",
4
4
  "title": "McpServerDefinition",
5
5
  "type": "object",
6
6
  "additionalProperties": false,
@@ -94,7 +94,8 @@
94
94
  "type": { "const": "client-credentials" },
95
95
  "clientId": { "type": "string", "minLength": 1 },
96
96
  "clientSecret": { "$ref": "#/$defs/environmentReference" },
97
- "scope": { "type": "string", "minLength": 1 }
97
+ "scope": { "type": "string", "minLength": 1 },
98
+ "issuer": { "type": "string", "minLength": 1 }
98
99
  }
99
100
  }
100
101
  ]
@@ -0,0 +1,36 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.plurnk.xyz/v0/McpServerOptions.json",
4
+ "title": "McpServerOptions",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "properties": {
8
+ "args": {
9
+ "title": "McpServerArguments",
10
+ "$ref": "https://schemas.plurnk.xyz/v0/McpServerDefinition.json#/properties/args"
11
+ },
12
+ "cwd": {
13
+ "$ref": "https://schemas.plurnk.xyz/v0/McpServerDefinition.json#/properties/cwd"
14
+ },
15
+ "env": {
16
+ "title": "McpServerEnvironment",
17
+ "$ref": "https://schemas.plurnk.xyz/v0/McpServerDefinition.json#/properties/env"
18
+ },
19
+ "headers": {
20
+ "title": "McpServerHeaders",
21
+ "$ref": "https://schemas.plurnk.xyz/v0/McpServerDefinition.json#/properties/headers"
22
+ },
23
+ "authorization": {
24
+ "title": "McpServerAuthorization",
25
+ "$ref": "https://schemas.plurnk.xyz/v0/McpServerDefinition.json#/properties/authorization"
26
+ },
27
+ "tools": {
28
+ "title": "McpServerToolNames",
29
+ "$ref": "https://schemas.plurnk.xyz/v0/McpServerDefinition.json#/properties/tools"
30
+ },
31
+ "read": {
32
+ "title": "McpServerReadTools",
33
+ "$ref": "https://schemas.plurnk.xyz/v0/McpServerDefinition.json#/properties/read"
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,122 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.plurnk.xyz/v0/ModelCatalogPage.json",
4
+ "title": "ModelCatalogPage",
5
+ "description": "One deterministic bounded page from the release-pinned model catalog.",
6
+ "type": "object",
7
+ "required": ["items", "offset", "total"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "items": {
11
+ "type": "array",
12
+ "maxItems": 100,
13
+ "items": {
14
+ "$ref": "#/$defs/model"
15
+ }
16
+ },
17
+ "offset": {
18
+ "type": "integer",
19
+ "minimum": 0,
20
+ "maximum": 9007199254740991
21
+ },
22
+ "total": {
23
+ "type": "integer",
24
+ "minimum": 0,
25
+ "maximum": 9007199254740991
26
+ },
27
+ "nextOffset": {
28
+ "type": "integer",
29
+ "minimum": 1,
30
+ "maximum": 9007199254740991
31
+ }
32
+ },
33
+ "$defs": {
34
+ "model": {
35
+ "title": "ModelCatalogEntry",
36
+ "type": "object",
37
+ "required": [
38
+ "selector",
39
+ "provider",
40
+ "providerName",
41
+ "model",
42
+ "modelName",
43
+ "limits",
44
+ "capabilities",
45
+ "readiness"
46
+ ],
47
+ "additionalProperties": false,
48
+ "properties": {
49
+ "selector": {
50
+ "type": "string",
51
+ "minLength": 3
52
+ },
53
+ "provider": {
54
+ "type": "string",
55
+ "minLength": 1
56
+ },
57
+ "providerName": {
58
+ "type": "string",
59
+ "minLength": 1
60
+ },
61
+ "model": {
62
+ "type": "string",
63
+ "minLength": 1
64
+ },
65
+ "modelName": {
66
+ "type": "string",
67
+ "minLength": 1
68
+ },
69
+ "limits": {
70
+ "$ref": "#/$defs/limits"
71
+ },
72
+ "capabilities": {
73
+ "$ref": "#/$defs/capabilities"
74
+ },
75
+ "readiness": {
76
+ "$ref": "https://schemas.plurnk.xyz/v0/ModelReadiness.json"
77
+ }
78
+ }
79
+ },
80
+ "limits": {
81
+ "title": "ModelCatalogLimits",
82
+ "type": "object",
83
+ "required": ["contextTokens"],
84
+ "additionalProperties": false,
85
+ "properties": {
86
+ "contextTokens": {
87
+ "type": "integer",
88
+ "minimum": 1
89
+ },
90
+ "inputTokens": {
91
+ "type": "integer",
92
+ "minimum": 1
93
+ },
94
+ "outputTokens": {
95
+ "type": "integer",
96
+ "minimum": 1
97
+ }
98
+ }
99
+ },
100
+ "capabilities": {
101
+ "title": "ModelCatalogCapabilities",
102
+ "type": "object",
103
+ "required": ["attachment", "reasoning", "toolCall", "inputModalities", "outputModalities"],
104
+ "additionalProperties": false,
105
+ "properties": {
106
+ "attachment": { "type": "boolean" },
107
+ "reasoning": { "type": "boolean" },
108
+ "toolCall": { "type": "boolean" },
109
+ "structuredOutput": { "type": "boolean" },
110
+ "temperature": { "type": "boolean" },
111
+ "inputModalities": {
112
+ "type": "array",
113
+ "items": { "type": "string", "minLength": 1 }
114
+ },
115
+ "outputModalities": {
116
+ "type": "array",
117
+ "items": { "type": "string", "minLength": 1 }
118
+ }
119
+ }
120
+ }
121
+ }
122
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.plurnk.xyz/v0/ModelCatalogQuery.json",
4
+ "title": "ModelCatalogQuery",
5
+ "description": "A bounded query over the release-pinned Models.dev catalog.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "properties": {
9
+ "provider": {
10
+ "type": "string",
11
+ "minLength": 1,
12
+ "maxLength": 128
13
+ },
14
+ "search": {
15
+ "type": "string",
16
+ "maxLength": 256
17
+ },
18
+ "availability": {
19
+ "enum": ["configured", "all"]
20
+ },
21
+ "offset": {
22
+ "type": "integer",
23
+ "minimum": 0,
24
+ "maximum": 9007199254740991
25
+ },
26
+ "limit": {
27
+ "type": "integer",
28
+ "minimum": 1,
29
+ "maximum": 100
30
+ }
31
+ }
32
+ }
@@ -0,0 +1,47 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.plurnk.xyz/v0/ModelReadiness.json",
4
+ "title": "ModelReadiness",
5
+ "description": "Local configuration evidence that a catalog provider is ready to attempt a request, without probing or validating credentials.",
6
+ "type": "object",
7
+ "required": ["ready", "causes"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "ready": {
11
+ "type": "boolean"
12
+ },
13
+ "causes": {
14
+ "type": "array",
15
+ "items": {
16
+ "$ref": "#/$defs/cause"
17
+ }
18
+ }
19
+ },
20
+ "$defs": {
21
+ "cause": {
22
+ "title": "ModelReadinessCause",
23
+ "type": "object",
24
+ "required": ["kind", "alternatives"],
25
+ "additionalProperties": false,
26
+ "properties": {
27
+ "kind": {
28
+ "enum": ["credential", "configuration"]
29
+ },
30
+ "alternatives": {
31
+ "description": "Alternative environment-variable sets. Every name in one inner array is required; satisfying any inner array resolves this cause.",
32
+ "type": "array",
33
+ "minItems": 1,
34
+ "items": {
35
+ "type": "array",
36
+ "minItems": 1,
37
+ "uniqueItems": true,
38
+ "items": {
39
+ "type": "string",
40
+ "pattern": "^[A-Z0-9_]+$"
41
+ }
42
+ }
43
+ }
44
+ }
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.plurnk.xyz/v0/ModelRoute.json",
4
+ "title": "ModelRoute",
5
+ "description": "A client-visible resolved provider/model identity. Alias is present only when a declared alias supplied the route; provider configuration remains private to the daemon.",
6
+ "type": "object",
7
+ "required": ["provider", "model"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "alias": {
11
+ "type": "string",
12
+ "minLength": 1
13
+ },
14
+ "provider": {
15
+ "type": "string",
16
+ "minLength": 1
17
+ },
18
+ "model": {
19
+ "type": "string",
20
+ "minLength": 1
21
+ }
22
+ }
23
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schemas.plurnk.dev/v0/Notice.json",
3
+ "$id": "https://schemas.plurnk.xyz/v0/Notice.json",
4
4
  "title": "Notice",
5
5
  "description": "A transient, nonterminal observation for clients and the next model packet. A Notice is never operation-failure truth and cannot determine durable history, lifecycle, scheduling, or recovery. Producers use the open `source` + `kind` discriminator; clients render the producer-owned `level` without inferring semantics from kind names.",
6
6
  "type": "object",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schemas.plurnk.dev/v0/OperationResult.json",
3
+ "$id": "https://schemas.plurnk.xyz/v0/OperationResult.json",
4
4
  "title": "OperationResult",
5
5
  "description": "Universal PLURNK operation result. Producer-owned metadata is open, but failures always carry one RFC 9457 Problem Details object and never a parallel error field.",
6
6
  "type": "object",
@@ -13,10 +13,10 @@
13
13
  "maximum": 599
14
14
  },
15
15
  "problem": {
16
- "$ref": "https://schemas.plurnk.dev/v0/ProblemDetails.json"
16
+ "$ref": "https://schemas.plurnk.xyz/v0/ProblemDetails.json"
17
17
  },
18
18
  "range": {
19
- "$ref": "https://schemas.plurnk.dev/v0/RangeExtent.json"
19
+ "$ref": "https://schemas.plurnk.xyz/v0/RangeExtent.json"
20
20
  },
21
21
  "error": false
22
22
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schemas.plurnk.dev/v0/ParsedPath.json",
3
+ "$id": "https://schemas.plurnk.xyz/v0/ParsedPath.json",
4
4
  "title": "ParsedPath",
5
5
  "description": "A parsed target slot from a plurnk statement. Discriminated on `kind`: a bare local path or a WHATWG-decomposed URL. Targets carry an exact address or a path glob; content matching belongs in the statement body.",
6
6
  "oneOf": [
@@ -0,0 +1,52 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.plurnk.xyz/v0/Plan.json",
4
+ "$comment": "Plurnk's model-native Plan is a bare array of ACP PlanEntry-shaped values with an additional durable-memory status. ACP projection is separately owned by AcpPlan.json.",
5
+ "title": "Plan",
6
+ "description": "Plurnk's complete model-native working-memory Plan entries.",
7
+ "type": "array",
8
+ "items": { "$ref": "#/$defs/PlanEntry" },
9
+ "$defs": {
10
+ "PlanEntry": {
11
+ "description": "One finding, task, or goal in the model's working-memory plan.",
12
+ "type": "object",
13
+ "properties": {
14
+ "content": {
15
+ "description": "Human-readable description of what this task aims to accomplish.",
16
+ "type": "string"
17
+ },
18
+ "priority": {
19
+ "description": "The relative importance of this task.",
20
+ "$ref": "#/$defs/PlanEntryPriority"
21
+ },
22
+ "status": {
23
+ "description": "The current execution status of this task.",
24
+ "$ref": "#/$defs/PlanEntryStatus"
25
+ },
26
+ "_meta": {
27
+ "description": "Opaque entry metadata preserved through standards projection.",
28
+ "type": ["object", "null"],
29
+ "additionalProperties": true
30
+ }
31
+ },
32
+ "required": ["content", "priority", "status"]
33
+ },
34
+ "PlanEntryPriority": {
35
+ "description": "ACP v1 priority levels.",
36
+ "oneOf": [
37
+ { "type": "string", "const": "high" },
38
+ { "type": "string", "const": "medium" },
39
+ { "type": "string", "const": "low" }
40
+ ]
41
+ },
42
+ "PlanEntryStatus": {
43
+ "description": "ACP v1 plan-entry lifecycle states.",
44
+ "oneOf": [
45
+ { "type": "string", "const": "pending" },
46
+ { "type": "string", "const": "in_progress" },
47
+ { "type": "string", "const": "completed" },
48
+ { "type": "string", "const": "memory" }
49
+ ]
50
+ }
51
+ }
52
+ }