@plurnk/plurnk-contracts 1.8.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 (84) hide show
  1. package/SPEC.md +122 -11
  2. package/dist/conformance/agui-v1.json +541 -0
  3. package/dist/schema/A2aAgentDefinition.json +44 -0
  4. package/dist/schema/AcpPlan.json +63 -0
  5. package/dist/schema/AguiClientConformance.json +74 -0
  6. package/dist/schema/AguiConformanceKit.json +111 -0
  7. package/dist/schema/AguiDiscovery.json +70 -0
  8. package/dist/schema/ClientDisplayCapabilities.json +1 -1
  9. package/dist/schema/ClientInteractionProjection.json +2 -2
  10. package/dist/schema/ClientInteractionRequest.json +1 -1
  11. package/dist/schema/ClientInteractionResolution.json +1 -1
  12. package/dist/schema/ClientStatement.json +7 -7
  13. package/dist/schema/EntryReadResult.json +2 -2
  14. package/dist/schema/FunctionalityCandidate.json +33 -0
  15. package/dist/schema/FunctionalityDefinitionState.json +33 -0
  16. package/dist/schema/FunctionalityDiscoverQuery.json +16 -0
  17. package/dist/schema/FunctionalityDiscoverResult.json +15 -0
  18. package/dist/schema/FunctionalityListResult.json +15 -0
  19. package/dist/schema/FunctionalityMutationResult.json +16 -0
  20. package/dist/schema/LineMarker.json +1 -1
  21. package/dist/schema/LoopFlags.json +1 -1
  22. package/dist/schema/MatcherBody.json +1 -1
  23. package/dist/schema/McpConfigurationOverlay.json +1 -1
  24. package/dist/schema/McpServerDefinition.json +1 -1
  25. package/dist/schema/McpServerOptions.json +8 -8
  26. package/dist/schema/ModelCatalogPage.json +2 -2
  27. package/dist/schema/ModelCatalogQuery.json +1 -1
  28. package/dist/schema/ModelReadiness.json +1 -1
  29. package/dist/schema/ModelRoute.json +1 -1
  30. package/dist/schema/Notice.json +1 -1
  31. package/dist/schema/OperationResult.json +3 -3
  32. package/dist/schema/ParsedPath.json +1 -1
  33. package/dist/schema/Plan.json +52 -0
  34. package/dist/schema/PlurnkStatement.json +9 -9
  35. package/dist/schema/Position.json +1 -1
  36. package/dist/schema/ProblemDetails.json +1 -1
  37. package/dist/schema/ProposalDisposition.json +1 -1
  38. package/dist/schema/ProposalProjection.json +5 -6
  39. package/dist/schema/ProviderAccounting.json +3 -3
  40. package/dist/schema/ProviderCost.json +1 -1
  41. package/dist/schema/ProviderRequestAccounting.json +3 -3
  42. package/dist/schema/ProviderUsage.json +1 -1
  43. package/dist/schema/RangeExtent.json +1 -1
  44. package/dist/schema/ReasoningPolicy.json +1 -1
  45. package/dist/schema/ResourceSelection.json +3 -3
  46. package/dist/schema/SendBody.json +1 -1
  47. package/dist/schema/SkillDefinition.json +26 -0
  48. package/dist/schema/TextLineMarker.json +1 -1
  49. package/dist/schema/TextRegion.json +1 -1
  50. package/dist/src/AcpPlanValue.d.ts +7 -0
  51. package/dist/src/AcpPlanValue.d.ts.map +1 -0
  52. package/dist/src/AcpPlanValue.js +32 -0
  53. package/dist/src/AcpPlanValue.js.map +1 -0
  54. package/dist/src/AguiConformance.d.ts +11 -0
  55. package/dist/src/AguiConformance.d.ts.map +1 -0
  56. package/dist/src/AguiConformance.js +16 -0
  57. package/dist/src/AguiConformance.js.map +1 -0
  58. package/dist/src/ApplicationPort.d.ts +271 -0
  59. package/dist/src/ApplicationPort.d.ts.map +1 -0
  60. package/dist/src/ApplicationPort.js +2 -0
  61. package/dist/src/ApplicationPort.js.map +1 -0
  62. package/dist/src/AstBuilder.d.ts.map +1 -1
  63. package/dist/src/AstBuilder.js +2 -1
  64. package/dist/src/AstBuilder.js.map +1 -1
  65. package/dist/src/PlanValue.d.ts +10 -0
  66. package/dist/src/PlanValue.d.ts.map +1 -0
  67. package/dist/src/PlanValue.js +58 -0
  68. package/dist/src/PlanValue.js.map +1 -0
  69. package/dist/src/PlurnkErrorStrategy.d.ts.map +1 -1
  70. package/dist/src/PlurnkErrorStrategy.js +17 -3
  71. package/dist/src/PlurnkErrorStrategy.js.map +1 -1
  72. package/dist/src/Problems.js +1 -1
  73. package/dist/src/Validator.d.ts +40 -1
  74. package/dist/src/Validator.d.ts.map +1 -1
  75. package/dist/src/Validator.js +236 -0
  76. package/dist/src/Validator.js.map +1 -1
  77. package/dist/src/index.d.ts +6 -1
  78. package/dist/src/index.d.ts.map +1 -1
  79. package/dist/src/index.js +4 -1
  80. package/dist/src/index.js.map +1 -1
  81. package/dist/src/types.generated.d.ts +285 -2
  82. package/dist/src/types.generated.d.ts.map +1 -1
  83. package/package.json +6 -1
  84. package/plurnk.md +79 -71
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schemas.plurnk.dev/v0/ModelRoute.json",
3
+ "$id": "https://schemas.plurnk.xyz/v0/ModelRoute.json",
4
4
  "title": "ModelRoute",
5
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
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/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
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schemas.plurnk.dev/v0/PlurnkStatement.json",
3
+ "$id": "https://schemas.plurnk.xyz/v0/PlurnkStatement.json",
4
4
  "title": "PlurnkStatement",
5
5
  "description": "The parsed AST union for one protocol statement, discriminated by `op`. Every variant has fixed signal, target, lineMarker, annotation, body, delimiter, and source-position fields; operation-specific schemas constrain their types. A null field records an omitted tolerated slot and does not satisfy runtime requirements by itself.",
6
6
  "oneOf": [
@@ -55,42 +55,42 @@
55
55
  },
56
56
  "PathOrNull": {
57
57
  "oneOf": [
58
- { "$ref": "https://schemas.plurnk.dev/v0/ParsedPath.json" },
58
+ { "$ref": "https://schemas.plurnk.xyz/v0/ParsedPath.json" },
59
59
  { "type": "null" }
60
60
  ]
61
61
  },
62
62
  "LineMarkerOrNull": {
63
63
  "oneOf": [
64
- { "$ref": "https://schemas.plurnk.dev/v0/LineMarker.json" },
64
+ { "$ref": "https://schemas.plurnk.xyz/v0/LineMarker.json" },
65
65
  { "type": "null" }
66
66
  ]
67
67
  },
68
68
  "TextLineMarkerOrNull": {
69
69
  "oneOf": [
70
- { "$ref": "https://schemas.plurnk.dev/v0/TextLineMarker.json" },
70
+ { "$ref": "https://schemas.plurnk.xyz/v0/TextLineMarker.json" },
71
71
  { "type": "null" }
72
72
  ]
73
73
  },
74
74
  "MatcherBodyOrNull": {
75
75
  "oneOf": [
76
- { "$ref": "https://schemas.plurnk.dev/v0/MatcherBody.json" },
76
+ { "$ref": "https://schemas.plurnk.xyz/v0/MatcherBody.json" },
77
77
  { "type": "null" }
78
78
  ]
79
79
  },
80
80
  "SendBodyOrNull": {
81
81
  "oneOf": [
82
- { "$ref": "https://schemas.plurnk.dev/v0/SendBody.json" },
82
+ { "$ref": "https://schemas.plurnk.xyz/v0/SendBody.json" },
83
83
  { "type": "null" }
84
84
  ]
85
85
  },
86
86
  "ResourceSelectionOrNull": {
87
87
  "oneOf": [
88
- { "$ref": "https://schemas.plurnk.dev/v0/ResourceSelection.json" },
88
+ { "$ref": "https://schemas.plurnk.xyz/v0/ResourceSelection.json" },
89
89
  { "type": "null" }
90
90
  ]
91
91
  },
92
92
  "PositionRef": {
93
- "$ref": "https://schemas.plurnk.dev/v0/Position.json"
93
+ "$ref": "https://schemas.plurnk.xyz/v0/Position.json"
94
94
  },
95
95
  "FindStatement": {
96
96
  "type": "object",
@@ -258,7 +258,7 @@
258
258
  "signal": { "$ref": "#/$defs/TagSignal" },
259
259
  "target": { "$ref": "#/$defs/PathOrNull" },
260
260
  "lineMarker": { "$ref": "#/$defs/LineMarkerOrNull" },
261
- "body": { "type": ["string", "null"] },
261
+ "body": { "$ref": "https://schemas.plurnk.xyz/v0/Plan.json" },
262
262
  "position": { "$ref": "#/$defs/PositionRef" }
263
263
  }
264
264
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schemas.plurnk.dev/v0/Position.json",
3
+ "$id": "https://schemas.plurnk.xyz/v0/Position.json",
4
4
  "title": "Position",
5
5
  "description": "A source point in parsed PLURNK input. Lines are 1-based; columns are 0-based Unicode code points. LF and CRLF delimit lines, while a lone CR occupies one column. The exact pair {line: 0, column: 0} is the sole unknown/degraded position.",
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/ProblemDetails.json",
3
+ "$id": "https://schemas.plurnk.xyz/v0/ProblemDetails.json",
4
4
  "title": "ProblemDetails",
5
5
  "description": "PLURNK operation failure using RFC 9457 Problem Details. Extension members are permitted so an owning boundary can add structured causal and recovery facts without inventing a second error envelope.",
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/ProposalDisposition.json",
3
+ "$id": "https://schemas.plurnk.xyz/v0/ProposalDisposition.json",
4
4
  "title": "ProposalDisposition",
5
5
  "description": "The one core-owned settlement decision for a pending proposal. Client-owned proposals require an external resolution; loop-owned proposals carry the exact automatic resolution core applies.",
6
6
  "oneOf": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schemas.plurnk.dev/v0/ProposalProjection.json",
3
+ "$id": "https://schemas.plurnk.xyz/v0/ProposalProjection.json",
4
4
  "title": "ProposalProjection",
5
5
  "description": "The runtime-neutral client-interface projection of one durable stopped-world proposal. Live delivery and reconnect discovery expose this same shape.",
6
6
  "type": "object",
@@ -14,7 +14,6 @@
14
14
  "body",
15
15
  "attrs",
16
16
  "flags",
17
- "staleClobberRisk",
18
17
  "disposition"
19
18
  ],
20
19
  "additionalProperties": false,
@@ -28,17 +27,17 @@
28
27
  },
29
28
  "target": {
30
29
  "type": "object",
31
- "required": ["scheme", "pathname"],
30
+ "required": ["scheme", "authority", "pathname"],
32
31
  "additionalProperties": false,
33
32
  "properties": {
34
33
  "scheme": { "type": ["string", "null"] },
34
+ "authority": { "type": ["string", "null"] },
35
35
  "pathname": { "type": ["string", "null"] }
36
36
  }
37
37
  },
38
38
  "body": { "type": "string" },
39
39
  "attrs": { "type": "object", "additionalProperties": true },
40
- "flags": { "$ref": "https://schemas.plurnk.dev/v0/LoopFlags.json" },
41
- "staleClobberRisk": { "type": "boolean" },
42
- "disposition": { "$ref": "https://schemas.plurnk.dev/v0/ProposalDisposition.json" }
40
+ "flags": { "$ref": "https://schemas.plurnk.xyz/v0/LoopFlags.json" },
41
+ "disposition": { "$ref": "https://schemas.plurnk.xyz/v0/ProposalDisposition.json" }
43
42
  }
44
43
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schemas.plurnk.dev/ProviderAccounting.json",
3
+ "$id": "https://schemas.plurnk.xyz/ProviderAccounting.json",
4
4
  "title": "ProviderAccounting",
5
5
  "description": "Ordered physical provider-request evidence and its deterministic aggregate projection.",
6
6
  "type": "object",
@@ -9,11 +9,11 @@
9
9
  "properties": {
10
10
  "requests": {
11
11
  "type": "array",
12
- "items": { "$ref": "https://schemas.plurnk.dev/ProviderRequestAccounting.json" }
12
+ "items": { "$ref": "https://schemas.plurnk.xyz/ProviderRequestAccounting.json" }
13
13
  },
14
14
  "usage": {
15
15
  "oneOf": [
16
- { "$ref": "https://schemas.plurnk.dev/ProviderUsage.json" },
16
+ { "$ref": "https://schemas.plurnk.xyz/ProviderUsage.json" },
17
17
  { "type": "null" }
18
18
  ]
19
19
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schemas.plurnk.dev/ProviderCost.json",
3
+ "$id": "https://schemas.plurnk.xyz/ProviderCost.json",
4
4
  "title": "ProviderCost",
5
5
  "description": "Normalized monetary evidence for one physical provider request. Unknown is never represented as zero.",
6
6
  "oneOf": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schemas.plurnk.dev/ProviderRequestAccounting.json",
3
+ "$id": "https://schemas.plurnk.xyz/ProviderRequestAccounting.json",
4
4
  "title": "ProviderRequestAccounting",
5
5
  "description": "The normalized accounting disposition of one physical provider request.",
6
6
  "type": "object",
@@ -11,7 +11,7 @@
11
11
  "model": { "type": "string", "minLength": 1 },
12
12
  "outcome": { "enum": ["response", "error"] },
13
13
  "status": { "type": "integer", "minimum": 100, "maximum": 599 },
14
- "usage": { "$ref": "https://schemas.plurnk.dev/ProviderUsage.json" },
15
- "cost": { "$ref": "https://schemas.plurnk.dev/ProviderCost.json" }
14
+ "usage": { "$ref": "https://schemas.plurnk.xyz/ProviderUsage.json" },
15
+ "cost": { "$ref": "https://schemas.plurnk.xyz/ProviderCost.json" }
16
16
  }
17
17
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schemas.plurnk.dev/ProviderUsage.json",
3
+ "$id": "https://schemas.plurnk.xyz/ProviderUsage.json",
4
4
  "title": "ProviderUsage",
5
5
  "description": "Known token quantities for one provider request. Omitted fields are unknown; explicit zero is observed or exactly derived.",
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/RangeExtent.json",
3
+ "$id": "https://schemas.plurnk.xyz/v0/RangeExtent.json",
4
4
  "title": "RangeExtent",
5
5
  "description": "A compact projection of one line or ordered-result selection. Requested and returned positions are inclusive; total is the complete available cardinality.",
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/ReasoningPolicy.json",
3
+ "$id": "https://schemas.plurnk.xyz/v0/ReasoningPolicy.json",
4
4
  "title": "ReasoningPolicy",
5
5
  "description": "The portable durable reasoning intent shared by provider, runtime, and client boundaries.",
6
6
  "enum": ["off", "adaptive", "low", "medium", "high"]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schemas.plurnk.dev/v0/ResourceSelection.json",
3
+ "$id": "https://schemas.plurnk.xyz/v0/ResourceSelection.json",
4
4
  "title": "ResourceSelection",
5
5
  "description": "A COPY/MOVE destination target and optional text scope. A target without a fragment selects the scheme's default channel; a fragment selects a named channel; lineMarker scopes the selected destination content.",
6
6
  "type": "object",
@@ -8,11 +8,11 @@
8
8
  "additionalProperties": false,
9
9
  "properties": {
10
10
  "target": {
11
- "$ref": "https://schemas.plurnk.dev/v0/ParsedPath.json"
11
+ "$ref": "https://schemas.plurnk.xyz/v0/ParsedPath.json"
12
12
  },
13
13
  "lineMarker": {
14
14
  "oneOf": [
15
- { "$ref": "https://schemas.plurnk.dev/v0/TextLineMarker.json" },
15
+ { "$ref": "https://schemas.plurnk.xyz/v0/TextLineMarker.json" },
16
16
  { "type": "null" }
17
17
  ]
18
18
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schemas.plurnk.dev/v0/SendBody.json",
3
+ "$id": "https://schemas.plurnk.xyz/v0/SendBody.json",
4
4
  "title": "SendBody",
5
5
  "description": "Parsed body of a SEND statement. `raw` is the literal body text; `json` is the best-effort `JSON.parse(raw)` result, or null when the body isn't valid JSON.",
6
6
  "type": "object",
@@ -0,0 +1,26 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.plurnk.xyz/v0/SkillDefinition.json",
4
+ "title": "SkillDefinition",
5
+ "description": "One standard Agent Skill as the Worker Functionality coordinator persists it: the skill's standard name, the universal root that holds (or will hold) its directory, and — for a Worker-installed skill — the standard installer package reference it came from.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": ["name", "scope"],
9
+ "properties": {
10
+ "name": {
11
+ "description": "The standard Agent Skills name: lowercase words joined by single hyphens, equal to the skill's directory name.",
12
+ "type": "string",
13
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
14
+ "maxLength": 64
15
+ },
16
+ "scope": {
17
+ "description": "The universal Agent Skills root: the project's `.agents/skills` or the user's `~/.agents/skills`.",
18
+ "enum": ["project", "global"]
19
+ },
20
+ "source": {
21
+ "description": "The standard installer package reference (`owner/repo`, a git URL, or a local path) that provides the skill; required to add a skill that is not yet installed.",
22
+ "type": "string",
23
+ "minLength": 1
24
+ }
25
+ }
26
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schemas.plurnk.dev/v0/TextLineMarker.json",
3
+ "$id": "https://schemas.plurnk.xyz/v0/TextLineMarker.json",
4
4
  "title": "TextLineMarker",
5
5
  "description": "The ordered components parsed from a text-coordinate <scope>. A line position may be numeric or a rendered five-character Base62 line anchor; columns remain numeric. Core resolves anchors against the addressed current text before a numeric scope reaches its operation owner.",
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/TextRegion.json",
3
+ "$id": "https://schemas.plurnk.xyz/v0/TextRegion.json",
4
4
  "title": "TextRegion",
5
5
  "description": "A contiguous region of text. Lines and Unicode code-point columns are 1-based; the start is included and the end is excluded.",
6
6
  "type": "object",
@@ -0,0 +1,7 @@
1
+ import type { AcpPlan } from "./types.ts";
2
+ export declare const ACP_MEMORY_PREFIX = "Memory: ";
3
+ export default class AcpPlanValue {
4
+ static project(value: unknown): AcpPlan;
5
+ static assertCanonical(value: unknown): AcpPlan;
6
+ }
7
+ //# sourceMappingURL=AcpPlanValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcpPlanValue.d.ts","sourceRoot":"","sources":["../../src/AcpPlanValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,YAAY,CAAC;AAIxD,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAI5C,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAgBtC;IAED,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK9C;CAEJ"}
@@ -0,0 +1,32 @@
1
+ import PlanValue from "./PlanValue.js";
2
+ import Validator from "./Validator.js";
3
+ export const ACP_MEMORY_PREFIX = "Memory: ";
4
+ // The standards boundary for Plurnk's model-native Plan. Internal state remains
5
+ // untouched; only an ACP consumer receives this deliberately lossy projection.
6
+ export default class AcpPlanValue {
7
+ static project(value) {
8
+ const plan = PlanValue.assertCanonical(value);
9
+ const projected = {
10
+ entries: plan.map((entry) => {
11
+ const { status, ...rest } = entry;
12
+ if (status !== "memory")
13
+ return { ...rest, status };
14
+ return {
15
+ ...rest,
16
+ content: entry.content.startsWith(ACP_MEMORY_PREFIX)
17
+ ? entry.content
18
+ : `${ACP_MEMORY_PREFIX}${entry.content}`,
19
+ status: "completed",
20
+ };
21
+ }),
22
+ };
23
+ return AcpPlanValue.assertCanonical(projected);
24
+ }
25
+ static assertCanonical(value) {
26
+ if (!Validator.validateAcpPlan(value).valid) {
27
+ throw new TypeError("Expected a canonical ACP Plan.");
28
+ }
29
+ return value;
30
+ }
31
+ }
32
+ //# sourceMappingURL=AcpPlanValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcpPlanValue.js","sourceRoot":"","sources":["../../src/AcpPlanValue.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAE5C,gFAAgF;AAChF,+EAA+E;AAC/E,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,OAAO,CAAC,KAAc;QACzB,MAAM,IAAI,GAAG,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG;YACd,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAgB,EAAE;gBACtC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;gBAClC,IAAI,MAAM,KAAK,QAAQ;oBAAE,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC;gBACpD,OAAO;oBACH,GAAG,IAAI;oBACP,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC;wBAChD,CAAC,CAAC,KAAK,CAAC,OAAO;wBACf,CAAC,CAAC,GAAG,iBAAiB,GAAG,KAAK,CAAC,OAAO,EAAE;oBAC5C,MAAM,EAAE,WAAW;iBACtB,CAAC;YACN,CAAC,CAAC;SACa,CAAC;QACpB,OAAO,YAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,KAAc;QACjC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;YAC1C,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,KAAgB,CAAC;IAC5B,CAAC;CAEJ"}
@@ -0,0 +1,11 @@
1
+ import type { Dimensions } from "./types.generated.ts";
2
+ export interface AguiConformanceRow {
3
+ readonly kind: "action" | "notification";
4
+ readonly name: string;
5
+ readonly posture: "native" | "generic" | "unsupported";
6
+ readonly dimensions: Dimensions;
7
+ readonly evidence: readonly string[];
8
+ readonly reason?: string;
9
+ }
10
+ export declare const aguiConformanceReport: (discoveryValue: unknown, conformanceValue: unknown) => AguiConformanceRow[];
11
+ //# sourceMappingURL=AguiConformance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AguiConformance.d.ts","sourceRoot":"","sources":["../../src/AguiConformance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;IACvD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,qBAAqB,mBACd,OAAO,oBACL,OAAO,KAC1B,kBAAkB,EAmBpB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import Validator from "./Validator.js";
2
+ export const aguiConformanceReport = (discoveryValue, conformanceValue) => {
3
+ const conformance = Validator.assertAguiClientConformance(discoveryValue, conformanceValue);
4
+ const rows = (kind, label) => Object.entries(conformance[kind])
5
+ .toSorted(([left], [right]) => left.localeCompare(right))
6
+ .map(([name, disposition]) => ({
7
+ kind: label,
8
+ name,
9
+ posture: disposition.posture,
10
+ dimensions: disposition.dimensions,
11
+ evidence: disposition.evidence,
12
+ ...(disposition.posture === "unsupported" ? { reason: disposition.reason } : {}),
13
+ }));
14
+ return [...rows("actions", "action"), ...rows("notifications", "notification")];
15
+ };
16
+ //# sourceMappingURL=AguiConformance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AguiConformance.js","sourceRoot":"","sources":["../../src/AguiConformance.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAYvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACjC,cAAuB,EACvB,gBAAyB,EACL,EAAE;IACtB,MAAM,WAAW,GAAG,SAAS,CAAC,2BAA2B,CACrD,cAAc,EACd,gBAAgB,CACnB,CAAC;IACF,MAAM,IAAI,GAAG,CACT,IAAU,EACV,KAAiC,EACb,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACvD,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACxD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3B,IAAI,EAAE,KAAK;QACX,IAAI;QACJ,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,UAAU,EAAE,WAAW,CAAC,UAAU;QAClC,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,GAAG,CAAC,WAAW,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnF,CAAC,CAAC,CAAC;IACR,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC;AACpF,CAAC,CAAC"}