@plurnk/plurnk-contracts 1.4.0 → 1.6.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 (64) hide show
  1. package/README.md +10 -6
  2. package/SPEC.md +368 -231
  3. package/dist/plurnk.gemma.gbnf +160 -0
  4. package/dist/plurnk.qwen.gbnf +149 -0
  5. package/dist/schema/ClientStatement.json +7 -1
  6. package/dist/schema/EntryReadResult.json +1 -9
  7. package/dist/schema/MatcherBody.json +1 -1
  8. package/dist/schema/OperationResult.json +3 -0
  9. package/dist/schema/PlurnkStatement.json +57 -12
  10. package/dist/schema/ProposalProjection.json +1 -1
  11. package/dist/schema/ProviderAccounting.json +30 -0
  12. package/dist/schema/ProviderCost.json +6 -15
  13. package/dist/schema/ProviderRequestAccounting.json +17 -0
  14. package/dist/schema/ProviderUsage.json +40 -0
  15. package/dist/schema/RangeExtent.json +47 -0
  16. package/dist/schema/ResourceSelection.json +1 -1
  17. package/dist/schema/TextLineMarker.json +21 -0
  18. package/dist/src/AstBuilder.d.ts.map +1 -1
  19. package/dist/src/AstBuilder.js +123 -22
  20. package/dist/src/AstBuilder.js.map +1 -1
  21. package/dist/src/JsonResult.d.ts +3 -0
  22. package/dist/src/JsonResult.d.ts.map +1 -0
  23. package/dist/src/JsonResult.js +37 -0
  24. package/dist/src/JsonResult.js.map +1 -0
  25. package/dist/src/PlurnkErrorStrategy.d.ts +1 -0
  26. package/dist/src/PlurnkErrorStrategy.d.ts.map +1 -1
  27. package/dist/src/PlurnkErrorStrategy.js +42 -19
  28. package/dist/src/PlurnkErrorStrategy.js.map +1 -1
  29. package/dist/src/PlurnkParser.d.ts.map +1 -1
  30. package/dist/src/PlurnkParser.js +22 -139
  31. package/dist/src/PlurnkParser.js.map +1 -1
  32. package/dist/src/TagSignal.d.ts +15 -0
  33. package/dist/src/TagSignal.d.ts.map +1 -0
  34. package/dist/src/TagSignal.js +48 -0
  35. package/dist/src/TagSignal.js.map +1 -0
  36. package/dist/src/Validator.d.ts +6 -1
  37. package/dist/src/Validator.d.ts.map +1 -1
  38. package/dist/src/Validator.js +36 -1
  39. package/dist/src/Validator.js.map +1 -1
  40. package/dist/src/generated/plurnkLexer.d.ts +99 -54
  41. package/dist/src/generated/plurnkLexer.d.ts.map +1 -1
  42. package/dist/src/generated/plurnkLexer.js +889 -498
  43. package/dist/src/generated/plurnkLexer.js.map +1 -1
  44. package/dist/src/generated/plurnkParser.d.ts +99 -108
  45. package/dist/src/generated/plurnkParser.d.ts.map +1 -1
  46. package/dist/src/generated/plurnkParser.js +943 -1068
  47. package/dist/src/generated/plurnkParser.js.map +1 -1
  48. package/dist/src/generated/plurnkParserVisitor.d.ts +19 -5
  49. package/dist/src/generated/plurnkParserVisitor.d.ts.map +1 -1
  50. package/dist/src/generated/plurnkParserVisitor.js +16 -4
  51. package/dist/src/generated/plurnkParserVisitor.js.map +1 -1
  52. package/dist/src/index.d.ts +6 -2
  53. package/dist/src/index.d.ts.map +1 -1
  54. package/dist/src/index.js +4 -2
  55. package/dist/src/index.js.map +1 -1
  56. package/dist/src/types.d.ts +2 -1
  57. package/dist/src/types.d.ts.map +1 -1
  58. package/dist/src/types.generated.d.ts +98 -24
  59. package/dist/src/types.generated.d.ts.map +1 -1
  60. package/dist/src/types.js +4 -1
  61. package/dist/src/types.js.map +1 -1
  62. package/package.json +8 -8
  63. package/plurnk.md +143 -133
  64. package/dist/plurnk.gbnf +0 -394
package/README.md CHANGED
@@ -23,7 +23,7 @@ Requires Node.js 26 or newer.
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 rail | `@plurnk/plurnk-contracts/plurnk.gbnf` |
26
+ | Optional local-model rails | `@plurnk/plurnk-contracts/plurnk.{gemma,qwen}.gbnf` |
27
27
 
28
28
  JSON Schema owns shared wire shapes, generated TypeScript projects those
29
29
  shapes, ANTLR owns accepted model-language syntax, and GBNF is a bounded
@@ -93,13 +93,17 @@ when the result contains an error or unparsed tail.
93
93
 
94
94
  ```ts
95
95
  const railUrl = import.meta.resolve(
96
- "@plurnk/plurnk-contracts/plurnk.gbnf",
96
+ "@plurnk/plurnk-contracts/plurnk.qwen.gbnf",
97
97
  );
98
98
  ```
99
99
 
100
- The shipped rail constrains one raw reasoning-plus-PLURNK sentence before the
101
- provider projects reasoning and content. It is not a second parser and does not
102
- guarantee semantically valid output. See SPEC {§gbnf-turn-shape} and
100
+ Choose `gemma` when the model generates its complete
101
+ `<|channel>thought <channel|>` enclosure, or `qwen` when the chat template
102
+ supplies `<think>\n` before sampled token zero. The latter artifact is named
103
+ `qwen` because that prefill is Qwen's template protocol, not a general property
104
+ of think tags. Both constrain the same PLURNK
105
+ turn after reasoning. They are not second parsers and do not guarantee
106
+ semantically valid output. See SPEC {§gbnf-turn-shape} and
103
107
  {§gbnf-reasoning-boundary}.
104
108
 
105
109
  ## Development
@@ -107,7 +111,7 @@ guarantee semantically valid output. See SPEC {§gbnf-turn-shape} and
107
111
  ```sh
108
112
  npm run build
109
113
  npm test
110
- npm run test:smoke
114
+ npm run test:installation
111
115
  ```
112
116
 
113
117
  Generated parser, schema-type, distribution, and GBNF artifacts are rebuilt by