@plurnk/plurnk-contracts 1.16.4 → 1.17.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 (88) hide show
  1. package/README.md +13 -29
  2. package/SPEC.md +605 -518
  3. package/dist/conformance/agui-v1.json +3 -3
  4. package/dist/schema/CapabilityProjection.json +2 -4
  5. package/dist/schema/ClientStatement.json +5 -52
  6. package/dist/schema/FunctionalityDefinitionState.json +2 -2
  7. package/dist/schema/LineMarker.json +1 -1
  8. package/dist/schema/LoopPolicy.json +2 -3
  9. package/dist/schema/MatcherBody.json +6 -6
  10. package/dist/schema/McpServerDefinition.json +17 -0
  11. package/dist/schema/ModelCatalogPage.json +10 -1
  12. package/dist/schema/ModelRoute.json +9 -0
  13. package/dist/schema/Notice.json +1 -1
  14. package/dist/schema/ParsedPath.json +3 -2
  15. package/dist/schema/Plan.json +9 -5
  16. package/dist/schema/PlurnkStatement.json +86 -134
  17. package/dist/schema/ProposalProjection.json +2 -1
  18. package/dist/schema/ResourceSelection.json +51 -27
  19. package/dist/schema/SkillDefinition.json +3 -3
  20. package/dist/src/AcpPlanValue.d.ts +0 -1
  21. package/dist/src/AcpPlanValue.d.ts.map +1 -1
  22. package/dist/src/AcpPlanValue.js +14 -13
  23. package/dist/src/AcpPlanValue.js.map +1 -1
  24. package/dist/src/ApplicationPort.d.ts +16 -14
  25. package/dist/src/ApplicationPort.d.ts.map +1 -1
  26. package/dist/src/AstBuilder.d.ts +3 -2
  27. package/dist/src/AstBuilder.d.ts.map +1 -1
  28. package/dist/src/AstBuilder.js +340 -187
  29. package/dist/src/AstBuilder.js.map +1 -1
  30. package/dist/src/JsonDocument.d.ts +2 -0
  31. package/dist/src/JsonDocument.d.ts.map +1 -0
  32. package/dist/src/JsonDocument.js +14 -0
  33. package/dist/src/JsonDocument.js.map +1 -0
  34. package/dist/src/LoopLifecycle.d.ts +3 -0
  35. package/dist/src/LoopLifecycle.d.ts.map +1 -0
  36. package/dist/src/LoopLifecycle.js +14 -0
  37. package/dist/src/LoopLifecycle.js.map +1 -0
  38. package/dist/src/PlanValue.d.ts +1 -1
  39. package/dist/src/PlanValue.d.ts.map +1 -1
  40. package/dist/src/PlanValue.js +10 -6
  41. package/dist/src/PlanValue.js.map +1 -1
  42. package/dist/src/PlurnkErrorStrategy.d.ts.map +1 -1
  43. package/dist/src/PlurnkErrorStrategy.js +58 -139
  44. package/dist/src/PlurnkErrorStrategy.js.map +1 -1
  45. package/dist/src/PlurnkParseError.d.ts +3 -1
  46. package/dist/src/PlurnkParseError.d.ts.map +1 -1
  47. package/dist/src/PlurnkParseError.js +4 -1
  48. package/dist/src/PlurnkParseError.js.map +1 -1
  49. package/dist/src/PlurnkParser.d.ts +9 -5
  50. package/dist/src/PlurnkParser.d.ts.map +1 -1
  51. package/dist/src/PlurnkParser.js +175 -180
  52. package/dist/src/PlurnkParser.js.map +1 -1
  53. package/dist/src/RecordingListener.d.ts +1 -1
  54. package/dist/src/RecordingListener.d.ts.map +1 -1
  55. package/dist/src/RecordingListener.js +24 -6
  56. package/dist/src/RecordingListener.js.map +1 -1
  57. package/dist/src/TurnDisposition.d.ts +11 -0
  58. package/dist/src/TurnDisposition.d.ts.map +1 -0
  59. package/dist/src/TurnDisposition.js +32 -0
  60. package/dist/src/TurnDisposition.js.map +1 -0
  61. package/dist/src/Validator.js +1 -1
  62. package/dist/src/Validator.js.map +1 -1
  63. package/dist/src/generated/plurnkLexer.d.ts +95 -106
  64. package/dist/src/generated/plurnkLexer.d.ts.map +1 -1
  65. package/dist/src/generated/plurnkLexer.js +674 -828
  66. package/dist/src/generated/plurnkLexer.js.map +1 -1
  67. package/dist/src/generated/plurnkParser.d.ts +111 -152
  68. package/dist/src/generated/plurnkParser.d.ts.map +1 -1
  69. package/dist/src/generated/plurnkParser.js +756 -1082
  70. package/dist/src/generated/plurnkParser.js.map +1 -1
  71. package/dist/src/generated/plurnkParserVisitor.d.ts +15 -36
  72. package/dist/src/generated/plurnkParserVisitor.d.ts.map +1 -1
  73. package/dist/src/generated/plurnkParserVisitor.js +12 -30
  74. package/dist/src/generated/plurnkParserVisitor.js.map +1 -1
  75. package/dist/src/index.d.ts +5 -1
  76. package/dist/src/index.d.ts.map +1 -1
  77. package/dist/src/index.js +4 -1
  78. package/dist/src/index.js.map +1 -1
  79. package/dist/src/types.d.ts +3 -7
  80. package/dist/src/types.d.ts.map +1 -1
  81. package/dist/src/types.generated.d.ts +147 -80
  82. package/dist/src/types.generated.d.ts.map +1 -1
  83. package/dist/src/types.js +3 -3
  84. package/dist/src/types.js.map +1 -1
  85. package/package.json +4 -8
  86. package/plurnk.md +103 -119
  87. package/dist/plurnk.gemma.gbnf +0 -141
  88. package/dist/plurnk.qwen.gbnf +0 -130
package/README.md CHANGED
@@ -23,12 +23,12 @@ 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 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
 
@@ -44,15 +44,16 @@ for (const item of result.items) {
44
44
  }
45
45
  ```
46
46
 
47
- Parse items are ordered and discriminate as `statement`, `error`, or `text`.
47
+ Parse items are ordered and discriminate as `statement` or `error`.
48
+ Outside-block text is ignored in every tier; literal bodies remain exact.
48
49
  The parser entry points deliberately accept different document tiers:
49
50
 
50
51
  | Entry point | Accepted input |
51
52
  |--------------------------------|-------------------------------------------------------|
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 |
53
+ | `PlurnkParser.parse` | One operation-bearing model turn; omitted TASK continues silently |
54
+ | `PlurnkParser.parseStatements` | A sequence of protocol statements |
55
+ | `PlurnkParser.parseLog` | Consecutive disposition-ended turns |
56
+ | `PlurnkParser.parseClient` | Protocol statements plus the client-only LOOK |
56
57
  | `parsePath` | One path or URI using parser-equivalent decomposition |
57
58
 
58
59
  See SPEC {§turn-shape} and {§tier-entrypoints} for the tier boundaries. All
@@ -88,23 +89,6 @@ plurnk-contracts --help show usage
88
89
  The CLI prints the parse result as JSON and exits `0` for a clean parse or `1`
89
90
  when the result contains an error or unparsed tail.
90
91
 
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
92
  ## Development
109
93
 
110
94
  ```sh
@@ -113,9 +97,9 @@ npm test
113
97
  npm run test:installation
114
98
  ```
115
99
 
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.
100
+ Generated parser, schema-type, and distribution artifacts are rebuilt by
101
+ `npm run build`. Change their grammar or schema owner rather than editing
102
+ generated output directly.
119
103
 
120
104
  ## License
121
105