@smartergpt/lexrunner 1.4.0 → 1.5.1

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.
@@ -2,7 +2,7 @@ import {
2
2
  formatConstraintPreview,
3
3
  formatConstraintPreviewJSON,
4
4
  previewConstraints
5
- } from "./chunk-WFN4JTZI.js";
5
+ } from "./chunk-LQSRQ6Z3.js";
6
6
  import "./chunk-V3BU2VDU.js";
7
7
  export {
8
8
  formatConstraintPreview,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartergpt/lexrunner",
3
- "version": "1.4.0",
3
+ "version": "1.5.1",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=24"
@@ -28,6 +28,7 @@
28
28
  "LICENSE.md"
29
29
  ],
30
30
  "bin": {
31
+ "lexrunner": "dist/cli.js",
31
32
  "lex-pr": "dist/cli.js",
32
33
  "lexrunner-mcp": "mcp-server.mjs"
33
34
  },
@@ -77,7 +78,7 @@
77
78
  }
78
79
  },
79
80
  "scripts": {
80
- "postinstall": "node -e \"console.log('\\n📦 lexrunner installed! Run \\\"npx lex-pr init\\\" to set up your workspace.\\n')\"",
81
+ "postinstall": "node -e \"console.log('\\n📦 lexrunner installed! Run \\\"npx lexrunner init\\\" to set up your workspace. The \\\"lex-pr\\\" compatibility alias remains supported.\\n')\"",
81
82
  "dev": "tsx watch src/cli.ts",
82
83
  "cli": "tsx src/cli.ts",
83
84
  "cli:built": "node dist/cli.js",
@@ -0,0 +1,161 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://github.com/Guffawaffle/lexrunner/schemas/gate-execution-receipt.schema.json",
4
+ "title": "LexRunner local gate execution receipt",
5
+ "description": "Bounded per-attempt evidence for one locally executed frozen gate.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schemaVersion",
10
+ "attempt",
11
+ "declaredGate",
12
+ "execution",
13
+ "outcome",
14
+ "output",
15
+ "artifacts"
16
+ ],
17
+ "properties": {
18
+ "schemaVersion": { "const": "lexrunner-gate-execution-receipt/v1" },
19
+ "attempt": { "type": "integer", "minimum": 1 },
20
+ "declaredGate": {
21
+ "type": "object",
22
+ "additionalProperties": false,
23
+ "required": ["name", "run", "cwd", "runtime", "artifacts"],
24
+ "properties": {
25
+ "name": { "type": "string" },
26
+ "run": { "type": "string" },
27
+ "cwd": { "type": ["string", "null"] },
28
+ "runtime": { "enum": ["local", "container", "ci-service"] },
29
+ "artifacts": { "type": "array", "items": { "type": "string" } }
30
+ }
31
+ },
32
+ "execution": {
33
+ "type": "object",
34
+ "additionalProperties": false,
35
+ "required": ["cwd", "startedAt", "finishedAt", "durationMs", "shell"],
36
+ "properties": {
37
+ "cwd": { "type": "string" },
38
+ "startedAt": { "type": "string", "format": "date-time" },
39
+ "finishedAt": { "type": "string", "format": "date-time" },
40
+ "durationMs": { "type": "number", "minimum": 0 },
41
+ "shell": {
42
+ "type": "object",
43
+ "additionalProperties": false,
44
+ "required": [
45
+ "command",
46
+ "executable",
47
+ "argv",
48
+ "identityAfter",
49
+ "unchanged",
50
+ "spawned"
51
+ ],
52
+ "properties": {
53
+ "command": { "enum": ["bash", "pwsh"] },
54
+ "executable": {
55
+ "anyOf": [{ "$ref": "#/definitions/fileIdentity" }, { "type": "null" }]
56
+ },
57
+ "argv": { "type": "array", "items": { "type": "string" } },
58
+ "identityAfter": {
59
+ "anyOf": [{ "$ref": "#/definitions/fileIdentity" }, { "type": "null" }]
60
+ },
61
+ "unchanged": { "type": "boolean" },
62
+ "spawned": { "type": "boolean" }
63
+ }
64
+ }
65
+ }
66
+ },
67
+ "outcome": {
68
+ "type": "object",
69
+ "additionalProperties": false,
70
+ "required": [
71
+ "status",
72
+ "exitCode",
73
+ "failureKind",
74
+ "timeoutCleanup",
75
+ "evidenceComplete"
76
+ ],
77
+ "properties": {
78
+ "status": { "enum": ["pass", "fail", "blocked", "skipped", "retrying"] },
79
+ "exitCode": { "type": ["integer", "null"] },
80
+ "failureKind": {
81
+ "enum": ["nonzero_exit", "spawn_error", "timeout", "evidence_error", null]
82
+ },
83
+ "timeoutCleanup": {
84
+ "anyOf": [
85
+ {
86
+ "type": "object",
87
+ "additionalProperties": false,
88
+ "required": ["method", "forceKilled", "descendantsReaped"],
89
+ "properties": {
90
+ "method": { "enum": ["process-group", "taskkill", "direct-child"] },
91
+ "forceKilled": { "type": "boolean" },
92
+ "descendantsReaped": { "type": "boolean" }
93
+ }
94
+ },
95
+ { "type": "null" }
96
+ ]
97
+ },
98
+ "evidenceComplete": { "type": "boolean" }
99
+ }
100
+ },
101
+ "output": {
102
+ "type": "object",
103
+ "additionalProperties": false,
104
+ "required": ["stdout", "stderr"],
105
+ "properties": {
106
+ "stdout": { "$ref": "#/definitions/outputEvidence" },
107
+ "stderr": { "$ref": "#/definitions/outputEvidence" }
108
+ }
109
+ },
110
+ "artifacts": {
111
+ "type": "array",
112
+ "items": { "$ref": "#/definitions/artifactEvidence" }
113
+ }
114
+ },
115
+ "definitions": {
116
+ "fileIdentity": {
117
+ "type": "object",
118
+ "additionalProperties": false,
119
+ "required": ["path", "realPath", "bytes", "mtimeMs", "sha256"],
120
+ "properties": {
121
+ "path": { "type": "string" },
122
+ "realPath": { "type": "string" },
123
+ "bytes": { "type": "integer", "minimum": 0 },
124
+ "mtimeMs": { "type": "number", "minimum": 0 },
125
+ "sha256": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
126
+ }
127
+ },
128
+ "outputEvidence": {
129
+ "type": "object",
130
+ "additionalProperties": false,
131
+ "required": ["bytes", "sha256", "truncated", "content"],
132
+ "properties": {
133
+ "bytes": { "type": "integer", "minimum": 0 },
134
+ "sha256": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
135
+ "truncated": { "type": "boolean" },
136
+ "content": { "type": "string", "maxLength": 65536 }
137
+ }
138
+ },
139
+ "artifactEvidence": {
140
+ "type": "object",
141
+ "additionalProperties": false,
142
+ "required": ["declaredPath", "resolvedPath", "status", "before", "source"],
143
+ "properties": {
144
+ "declaredPath": { "type": "string" },
145
+ "resolvedPath": { "type": "string" },
146
+ "status": {
147
+ "enum": ["collected", "missing", "stale", "unsupported", "collection_error"]
148
+ },
149
+ "before": {
150
+ "anyOf": [{ "$ref": "#/definitions/fileIdentity" }, { "type": "null" }]
151
+ },
152
+ "source": {
153
+ "anyOf": [{ "$ref": "#/definitions/fileIdentity" }, { "type": "null" }]
154
+ },
155
+ "retainedPath": { "type": "string" },
156
+ "retained": { "$ref": "#/definitions/fileIdentity" },
157
+ "error": { "type": "string", "maxLength": 1025 }
158
+ }
159
+ }
160
+ }
161
+ }