@plurnk/plurnk-contracts 1.5.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 (57) hide show
  1. package/README.md +9 -5
  2. package/SPEC.md +327 -227
  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/PlurnkStatement.json +56 -11
  8. package/dist/schema/ProposalProjection.json +1 -1
  9. package/dist/schema/ProviderAccounting.json +30 -0
  10. package/dist/schema/ProviderCost.json +6 -15
  11. package/dist/schema/ProviderRequestAccounting.json +17 -0
  12. package/dist/schema/ProviderUsage.json +40 -0
  13. package/dist/schema/ResourceSelection.json +1 -1
  14. package/dist/schema/TextLineMarker.json +21 -0
  15. package/dist/src/AstBuilder.d.ts.map +1 -1
  16. package/dist/src/AstBuilder.js +108 -20
  17. package/dist/src/AstBuilder.js.map +1 -1
  18. package/dist/src/PlurnkErrorStrategy.d.ts +1 -0
  19. package/dist/src/PlurnkErrorStrategy.d.ts.map +1 -1
  20. package/dist/src/PlurnkErrorStrategy.js +42 -19
  21. package/dist/src/PlurnkErrorStrategy.js.map +1 -1
  22. package/dist/src/PlurnkParser.d.ts.map +1 -1
  23. package/dist/src/PlurnkParser.js +22 -145
  24. package/dist/src/PlurnkParser.js.map +1 -1
  25. package/dist/src/TagSignal.d.ts +15 -0
  26. package/dist/src/TagSignal.d.ts.map +1 -0
  27. package/dist/src/TagSignal.js +48 -0
  28. package/dist/src/TagSignal.js.map +1 -0
  29. package/dist/src/Validator.d.ts +1 -0
  30. package/dist/src/Validator.d.ts.map +1 -1
  31. package/dist/src/Validator.js +7 -0
  32. package/dist/src/Validator.js.map +1 -1
  33. package/dist/src/generated/plurnkLexer.d.ts +99 -64
  34. package/dist/src/generated/plurnkLexer.d.ts.map +1 -1
  35. package/dist/src/generated/plurnkLexer.js +879 -526
  36. package/dist/src/generated/plurnkLexer.js.map +1 -1
  37. package/dist/src/generated/plurnkParser.d.ts +99 -109
  38. package/dist/src/generated/plurnkParser.d.ts.map +1 -1
  39. package/dist/src/generated/plurnkParser.js +943 -1070
  40. package/dist/src/generated/plurnkParser.js.map +1 -1
  41. package/dist/src/generated/plurnkParserVisitor.d.ts +19 -5
  42. package/dist/src/generated/plurnkParserVisitor.d.ts.map +1 -1
  43. package/dist/src/generated/plurnkParserVisitor.js +16 -4
  44. package/dist/src/generated/plurnkParserVisitor.js.map +1 -1
  45. package/dist/src/index.d.ts +2 -0
  46. package/dist/src/index.d.ts.map +1 -1
  47. package/dist/src/index.js +1 -0
  48. package/dist/src/index.js.map +1 -1
  49. package/dist/src/types.d.ts +1 -1
  50. package/dist/src/types.d.ts.map +1 -1
  51. package/dist/src/types.generated.d.ts +79 -22
  52. package/dist/src/types.generated.d.ts.map +1 -1
  53. package/dist/src/types.js +1 -1
  54. package/dist/src/types.js.map +1 -1
  55. package/package.json +3 -2
  56. package/plurnk.md +140 -96
  57. 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