@plurnk/plurnk-contracts 1.16.5 → 1.18.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 (92) hide show
  1. package/README.md +13 -62
  2. package/SPEC.md +633 -529
  3. package/dist/conformance/agui-v1.json +3 -50
  4. package/dist/schema/CapabilityDescriptor.json +6 -1
  5. package/dist/schema/CapabilityProjection.json +2 -4
  6. package/dist/schema/CapabilitySelector.json +6 -1
  7. package/dist/schema/ClientStatement.json +5 -52
  8. package/dist/schema/FunctionalityDefinitionState.json +10 -2
  9. package/dist/schema/LineMarker.json +1 -1
  10. package/dist/schema/LoopPolicy.json +2 -3
  11. package/dist/schema/MatcherBody.json +6 -6
  12. package/dist/schema/McpServerDefinition.json +17 -0
  13. package/dist/schema/ModelCatalogPage.json +10 -1
  14. package/dist/schema/ModelRoute.json +9 -0
  15. package/dist/schema/Notice.json +1 -1
  16. package/dist/schema/ParsedPath.json +3 -2
  17. package/dist/schema/Plan.json +10 -6
  18. package/dist/schema/PlurnkStatement.json +95 -143
  19. package/dist/schema/ProposalProjection.json +6 -1
  20. package/dist/schema/ResourceSelection.json +51 -27
  21. package/dist/schema/SkillDefinition.json +3 -3
  22. package/dist/src/AcpPlanValue.d.ts +0 -1
  23. package/dist/src/AcpPlanValue.d.ts.map +1 -1
  24. package/dist/src/AcpPlanValue.js +14 -13
  25. package/dist/src/AcpPlanValue.js.map +1 -1
  26. package/dist/src/ApplicationPort.d.ts +17 -14
  27. package/dist/src/ApplicationPort.d.ts.map +1 -1
  28. package/dist/src/JsonDocument.d.ts +2 -0
  29. package/dist/src/JsonDocument.d.ts.map +1 -0
  30. package/dist/src/JsonDocument.js +14 -0
  31. package/dist/src/JsonDocument.js.map +1 -0
  32. package/dist/src/LoopLifecycle.d.ts +3 -0
  33. package/dist/src/LoopLifecycle.d.ts.map +1 -0
  34. package/dist/src/LoopLifecycle.js +14 -0
  35. package/dist/src/LoopLifecycle.js.map +1 -0
  36. package/dist/src/PlanValue.d.ts +1 -1
  37. package/dist/src/PlanValue.d.ts.map +1 -1
  38. package/dist/src/PlanValue.js +10 -6
  39. package/dist/src/PlanValue.js.map +1 -1
  40. package/dist/src/PlurnkParseError.d.ts +3 -1
  41. package/dist/src/PlurnkParseError.d.ts.map +1 -1
  42. package/dist/src/PlurnkParseError.js +4 -1
  43. package/dist/src/PlurnkParseError.js.map +1 -1
  44. package/dist/src/TurnDisposition.d.ts +11 -0
  45. package/dist/src/TurnDisposition.d.ts.map +1 -0
  46. package/dist/src/TurnDisposition.js +32 -0
  47. package/dist/src/TurnDisposition.js.map +1 -0
  48. package/dist/src/Validator.js +1 -1
  49. package/dist/src/Validator.js.map +1 -1
  50. package/dist/src/index.d.ts +5 -4
  51. package/dist/src/index.d.ts.map +1 -1
  52. package/dist/src/index.js +5 -5
  53. package/dist/src/index.js.map +1 -1
  54. package/dist/src/types.d.ts +13 -8
  55. package/dist/src/types.d.ts.map +1 -1
  56. package/dist/src/types.generated.d.ts +172 -86
  57. package/dist/src/types.generated.d.ts.map +1 -1
  58. package/dist/src/types.js +9 -4
  59. package/dist/src/types.js.map +1 -1
  60. package/package.json +5 -23
  61. package/plurnk.md +106 -119
  62. package/bin/plurnk-contracts.js +0 -43
  63. package/dist/plurnk.gemma.gbnf +0 -141
  64. package/dist/plurnk.qwen.gbnf +0 -130
  65. package/dist/src/AstBuilder.d.ts +0 -20
  66. package/dist/src/AstBuilder.d.ts.map +0 -1
  67. package/dist/src/AstBuilder.js +0 -723
  68. package/dist/src/AstBuilder.js.map +0 -1
  69. package/dist/src/PlurnkErrorStrategy.d.ts +0 -11
  70. package/dist/src/PlurnkErrorStrategy.d.ts.map +0 -1
  71. package/dist/src/PlurnkErrorStrategy.js +0 -358
  72. package/dist/src/PlurnkErrorStrategy.js.map +0 -1
  73. package/dist/src/PlurnkParser.d.ts +0 -11
  74. package/dist/src/PlurnkParser.d.ts.map +0 -1
  75. package/dist/src/PlurnkParser.js +0 -335
  76. package/dist/src/PlurnkParser.js.map +0 -1
  77. package/dist/src/RecordingListener.d.ts +0 -9
  78. package/dist/src/RecordingListener.d.ts.map +0 -1
  79. package/dist/src/RecordingListener.js +0 -19
  80. package/dist/src/RecordingListener.js.map +0 -1
  81. package/dist/src/generated/plurnkLexer.d.ts +0 -174
  82. package/dist/src/generated/plurnkLexer.d.ts.map +0 -1
  83. package/dist/src/generated/plurnkLexer.js +0 -1215
  84. package/dist/src/generated/plurnkLexer.js.map +0 -1
  85. package/dist/src/generated/plurnkParser.d.ts +0 -477
  86. package/dist/src/generated/plurnkParser.d.ts.map +0 -1
  87. package/dist/src/generated/plurnkParser.js +0 -3298
  88. package/dist/src/generated/plurnkParser.js.map +0 -1
  89. package/dist/src/generated/plurnkParserVisitor.d.ts +0 -284
  90. package/dist/src/generated/plurnkParserVisitor.d.ts.map +0 -1
  91. package/dist/src/generated/plurnkParserVisitor.js +0 -245
  92. package/dist/src/generated/plurnkParserVisitor.js.map +0 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @plurnk/plurnk-contracts
2
2
 
3
- The single authority for PLURNK's model-facing language, parser and AST,
3
+ The single authority for PLURNK's model-facing language contract, its AST,
4
4
  generated model rail, shared schemas and types, runtime-neutral Problems,
5
5
  operation results, Notices, and text coordinates. See SPEC
6
6
  {§contract-authority}.
@@ -19,45 +19,23 @@ Requires Node.js 26 or newer.
19
19
  |---------------------------------|------------------------------------------------------|
20
20
  | Concise model language teaching | [`plurnk.md`](plurnk.md) |
21
21
  | Stable behavioral contract | [`SPEC.md`](SPEC.md) |
22
- | Accepted language syntax | `plurnkLexer.g4` and `plurnkParser.g4` |
22
+ | Accepted language syntax | `SPEC.md` ({§contract-layers}); implemented by `@plurnk/plurnk-parser` |
23
23
  | Shared wire shapes | `schema/*.json` |
24
24
  | JavaScript and TypeScript API | `@plurnk/plurnk-contracts` |
25
25
  | Published JSON Schemas | `@plurnk/plurnk-contracts/schema/*.json` |
26
- | Optional local-model rails | `@plurnk/plurnk-contracts/plurnk.{gemma,qwen}.gbnf` |
27
26
 
28
27
  JSON Schema owns shared wire shapes, generated TypeScript projects those
29
- shapes, ANTLR owns accepted model-language syntax, and GBNF is a bounded
30
- generation aid. See SPEC {§contract-representations} and
31
- {§gbnf-rail-purpose}.
28
+ shapes, and ANTLR owns accepted model-language syntax. See SPEC
29
+ {§contract-representations}. An operator who wants constrained sampling on a
30
+ llama-server route writes their own GBNF and points `PLURNK_PROVIDERS_GBNF` at
31
+ it; this package ships no grammar profile.
32
32
 
33
33
  ## Parser
34
34
 
35
- ```ts
36
- import { PlurnkParser } from "@plurnk/plurnk-contracts";
37
-
38
- const result = PlurnkParser.parse(input);
39
-
40
- for (const item of result.items) {
41
- if (item.kind === "statement") {
42
- console.log(item.statement.op);
43
- }
44
- }
45
- ```
46
-
47
- Parse items are ordered and discriminate as `statement`, `error`, or `text`.
48
- The parser entry points deliberately accept different document tiers:
49
-
50
- | Entry point | Accepted input |
51
- |--------------------------------|-------------------------------------------------------|
52
- | `PlurnkParser.parse` | One operation-bearing model turn; omitted PLAN/SEND are recovered |
53
- | `PlurnkParser.parseStatements` | A strict sequence of protocol statements |
54
- | `PlurnkParser.parseLog` | Strict consecutive PLAN-through-SEND turns |
55
- | `PlurnkParser.parseClient` | Protocol statements plus client-only LOOK and BUFF |
56
- | `parsePath` | One path or URI using parser-equivalent decomposition |
57
-
58
- See SPEC {§turn-shape} and {§tier-entrypoints} for the tier boundaries. All
59
- AST, parse-result, schema-derived, and runtime-neutral wire types are exported
60
- from the package root.
35
+ The parser that implements this language is [`@plurnk/plurnk-parser`](../plurnk-parser):
36
+ `PlurnkParser` and `parsePath` are its exports, and it depends on this package for
37
+ the AST and wire types. A consumer that validates or presents the wire needs only
38
+ this package.
61
39
 
62
40
  ## Wire validation
63
41
 
@@ -78,33 +56,6 @@ Generated wire types, constructors, and validators share the package root entry
78
56
  point described by SPEC {§wire-entrypoint}. Owning JSON Schemas use the published
79
57
  `@plurnk/plurnk-contracts/schema/*.json` subpaths.
80
58
 
81
- ## CLI
82
-
83
- ```text
84
- plurnk-contracts [file] parse a file, or standard input when omitted
85
- plurnk-contracts --help show usage
86
- ```
87
-
88
- The CLI prints the parse result as JSON and exits `0` for a clean parse or `1`
89
- when the result contains an error or unparsed tail.
90
-
91
- ## Optional GBNF artifact
92
-
93
- ```ts
94
- const railUrl = import.meta.resolve(
95
- "@plurnk/plurnk-contracts/plurnk.qwen.gbnf",
96
- );
97
- ```
98
-
99
- Choose `gemma` when the model generates its complete
100
- `<|channel>thought … <channel|>` enclosure, or `qwen` when the chat template
101
- supplies `<think>\n` before sampled token zero. The latter artifact is named
102
- `qwen` because that prefill is Qwen's template protocol, not a general property
103
- of think tags. Both constrain the same PLURNK
104
- turn after reasoning. They are not second parsers and do not guarantee
105
- semantically valid output. See SPEC {§gbnf-turn-shape} and
106
- {§gbnf-reasoning-boundary}.
107
-
108
59
  ## Development
109
60
 
110
61
  ```sh
@@ -113,9 +64,9 @@ npm test
113
64
  npm run test:installation
114
65
  ```
115
66
 
116
- Generated parser, schema-type, distribution, and GBNF artifacts are rebuilt by
117
- `npm run build`. Change their grammar, schema, or generator owner rather than
118
- editing generated output directly.
67
+ Generated schema-type and distribution artifacts are rebuilt by `npm run build`.
68
+ Change the owning schema rather than editing generated output directly; the
69
+ grammar and its generated parser live in `@plurnk/plurnk-parser`.
119
70
 
120
71
  ## License
121
72