@codyswann/lisa 3.47.3 → 3.47.5

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 (59) hide show
  1. package/all/copy-overwrite/scripts/lisa-schema-validate.mjs +126 -32
  2. package/all/copy-overwrite/scripts/lisa-work-item.mjs +62 -6
  3. package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
  4. package/dist/core/lisa-owned-hash-ledger.js +3 -0
  5. package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
  6. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  7. package/dist/core/upstream-evidence-manifest.js +10 -2
  8. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  9. package/package.json +1 -1
  10. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  11. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  12. package/plugins/lisa-agy/plugin.json +1 -1
  13. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  14. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  15. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  16. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  17. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  18. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  19. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  20. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  21. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  22. package/plugins/lisa-expo-agy/plugin.json +1 -1
  23. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  24. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  25. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  26. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  27. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  28. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  31. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  32. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  33. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  37. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  38. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  39. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  42. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  43. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  47. package/plugins/lisa-rails-agy/plugin.json +1 -1
  48. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  52. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  53. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  57. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  58. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  59. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
@@ -12,11 +12,26 @@
12
12
  * keyword it does not implement**, so a schema can never silently validate less
13
13
  * than it claims: an unsupported keyword is a validator error, not a pass.
14
14
  *
15
- * Supported: `type` (a single name or an array of names), `const`, `enum`,
16
- * `required`, `properties`,
17
- * `additionalProperties` (boolean), `items`, `minLength`, `minimum`, `pattern`,
18
- * `$ref` (local `#/$defs/<name>` only), `$defs`, plus the annotation-only
19
- * keywords `$schema`, `$id`, `title`, `description`.
15
+ * That promise is enforced on a keyword's FORM as well as its name. A name-only
16
+ * allowlist let four keywords through and then dropped them —
17
+ * `additionalProperties` as a subschema, siblings beside a `$ref`,
18
+ * `items: false`, a string `required` each a schema validating less than it
19
+ * says, which is the very outcome the allowlist exists to prevent. Every
20
+ * supported keyword therefore declares the shape it must be written in
21
+ * (`KEYWORD_FORMS`), and any other shape is a validator error.
22
+ *
23
+ * Refusing an unimplemented form rather than implementing it is deliberate.
24
+ * Implementing subschema `additionalProperties` and `$ref` siblings would grow
25
+ * a dependency-free validator into a general one, which this module declines to
26
+ * be; refusing is both smaller and the behaviour the header already promises.
27
+ *
28
+ * Supported: `type` (a single name or a non-empty array of names), `const`,
29
+ * `enum` (a non-empty array), `required` (an array of names), `properties` (an
30
+ * object of subschemas), `additionalProperties` (a boolean), `items` (a
31
+ * subschema object), `minLength`, `minimum` (numbers), `pattern` (a string),
32
+ * `$ref` (a local `#/$defs/<name>` string, with no validating siblings),
33
+ * `$defs`, plus the annotation-only keywords `$schema`, `$id`, `title`,
34
+ * `description`.
20
35
  * @module scripts/lisa-schema-validate
21
36
  */
22
37
 
@@ -31,20 +46,61 @@ const ANNOTATION_KEYWORDS = new Set([
31
46
  "default",
32
47
  ]);
33
48
 
34
- /** Keywords this validator implements. Anything else is an error. */
35
- const SUPPORTED_KEYWORDS = new Set([
36
- "type",
37
- "const",
38
- "enum",
39
- "required",
40
- "properties",
41
- "additionalProperties",
42
- "items",
43
- "minLength",
44
- "minimum",
45
- "pattern",
46
- "$ref",
47
- ]);
49
+ /**
50
+ * Whether a value is a plain JSON object — the shape a subschema takes.
51
+ * @param {unknown} value - Value to test
52
+ * @returns {boolean} Whether it is a non-null, non-array object
53
+ */
54
+ function isSchemaObject(value) {
55
+ return typeof value === "object" && value !== null && !Array.isArray(value);
56
+ }
57
+
58
+ /**
59
+ * The keywords this validator implements, each with the FORM it must be written
60
+ * in and a description of that form for the error message.
61
+ *
62
+ * The form is the load-bearing half. A name-only allowlist accepts
63
+ * `additionalProperties: {"type": "string"}`, `items: false` and
64
+ * `required: ""` and then applies none of them, which is a schema silently
65
+ * validating less than it claims — the exact failure the allowlist exists to
66
+ * prevent, reached through the one door nobody checked.
67
+ *
68
+ * `const` takes any JSON value, so its form is unconstrained; that is a real
69
+ * property of the keyword, not an omission.
70
+ */
71
+ const KEYWORD_FORMS = Object.freeze({
72
+ type: {
73
+ accepts: value =>
74
+ typeof value === "string" ||
75
+ (Array.isArray(value) &&
76
+ value.length > 0 &&
77
+ value.every(entry => typeof entry === "string")),
78
+ form: "a type name or a non-empty array of type names",
79
+ },
80
+ const: { accepts: () => true, form: "any JSON value" },
81
+ enum: {
82
+ accepts: value => Array.isArray(value) && value.length > 0,
83
+ form: "a non-empty array",
84
+ },
85
+ required: {
86
+ accepts: value =>
87
+ Array.isArray(value) && value.every(entry => typeof entry === "string"),
88
+ form: "an array of property names",
89
+ },
90
+ properties: { accepts: isSchemaObject, form: "an object of subschemas" },
91
+ additionalProperties: {
92
+ accepts: value => typeof value === "boolean",
93
+ form: "a boolean (a subschema is not implemented)",
94
+ },
95
+ items: {
96
+ accepts: isSchemaObject,
97
+ form: "a subschema object (a boolean is not implemented)",
98
+ },
99
+ minLength: { accepts: value => typeof value === "number", form: "a number" },
100
+ minimum: { accepts: value => typeof value === "number", form: "a number" },
101
+ pattern: { accepts: value => typeof value === "string", form: "a string" },
102
+ $ref: { accepts: value => typeof value === "string", form: "a string" },
103
+ });
48
104
 
49
105
  /**
50
106
  * JSON type name for a value, using JSON Schema's vocabulary.
@@ -83,19 +139,61 @@ function resolveRef(ref, root) {
83
139
  }
84
140
 
85
141
  /**
86
- * Refuse any keyword this validator does not implement.
142
+ * Refuse any keyword this validator does not implement, in name or in form.
87
143
  * @param {object} schema - Subschema to inspect
88
144
  * @param {string} instancePath - JSON-pointer-ish path for messages
89
145
  * @returns {void}
90
- * @throws {Error} When the subschema uses an unimplemented keyword
146
+ * @throws {Error} When the subschema uses an unimplemented keyword or form
91
147
  */
92
148
  function assertSupportedKeywords(schema, instancePath) {
149
+ const where = instancePath || "/";
93
150
  for (const keyword of Object.keys(schema)) {
94
- if (!SUPPORTED_KEYWORDS.has(keyword) && !ANNOTATION_KEYWORDS.has(keyword)) {
151
+ if (ANNOTATION_KEYWORDS.has(keyword)) {
152
+ continue;
153
+ }
154
+ const expected = KEYWORD_FORMS[keyword];
155
+ if (!expected) {
95
156
  throw new Error(
96
- `schema at ${instancePath || "/"} uses unsupported keyword "${keyword}"`
157
+ `schema at ${where} uses unsupported keyword "${keyword}"`
97
158
  );
98
159
  }
160
+ if (!expected.accepts(schema[keyword])) {
161
+ throw new Error(
162
+ `schema at ${where} writes "${keyword}" in an unimplemented form; expected ${expected.form}`
163
+ );
164
+ }
165
+ }
166
+ assertNoRefSiblings(schema, where);
167
+ }
168
+
169
+ /**
170
+ * Refuse a `$ref` that carries validating siblings.
171
+ *
172
+ * `validateNode` validates against the resolved target and returns, discarding
173
+ * every sibling keyword — so `{"$ref": ..., "enum": [...]}` applied the target
174
+ * and dropped the enum, reporting a violating value as valid. In JSON Schema
175
+ * 2020-12 siblings ARE applied, so ignoring them is a spec deviation on top of
176
+ * a silent under-validation.
177
+ *
178
+ * Annotation-only siblings are fine and common: `{"$ref": ..., "description":
179
+ * ...}` carries no validation semantics, and refusing it would be a false
180
+ * positive on ordinary schemas.
181
+ * @param {object} schema - Subschema to inspect
182
+ * @param {string} where - Location for the message
183
+ * @returns {void}
184
+ * @throws {Error} When a validating keyword sits beside a `$ref`
185
+ */
186
+ function assertNoRefSiblings(schema, where) {
187
+ if (!("$ref" in schema)) {
188
+ return;
189
+ }
190
+ const siblings = Object.keys(schema).filter(
191
+ keyword => keyword !== "$ref" && !ANNOTATION_KEYWORDS.has(keyword)
192
+ );
193
+ if (siblings.length > 0) {
194
+ throw new Error(
195
+ `schema at ${where} places validating keyword(s) ${siblings.map(entry => `"${entry}"`).join(", ")} beside a "$ref"; $ref siblings are not implemented`
196
+ );
99
197
  }
100
198
  }
101
199
 
@@ -120,6 +218,11 @@ function typeAccepts(declared, actualType) {
120
218
  * `typeof === "string"` test entirely: the keyword passed the allowlist, so the
121
219
  * module's central promise — an unimplemented keyword is an error, never a
122
220
  * silent pass — was broken for the one form nobody checked.
221
+ *
222
+ * Any THIRD form is refused before this function is reached: `KEYWORD_FORMS`
223
+ * declares what `type` may be written as and `assertSupportedKeywords` runs
224
+ * first, so the two branches below are the only two that exist. Repeating the
225
+ * check here would be unreachable code claiming to be a guard.
123
226
  * @param {object} schema - Subschema to apply
124
227
  * @param {string} actualType - The observed type
125
228
  * @param {string} where - Location for the message
@@ -133,15 +236,6 @@ function typeError(schema, actualType, where) {
133
236
  : `${where}: expected type ${declared}, got ${actualType}`;
134
237
  }
135
238
  if (declared === undefined) return null;
136
- if (
137
- !Array.isArray(declared) ||
138
- declared.length === 0 ||
139
- !declared.every(entry => typeof entry === "string")
140
- ) {
141
- throw new Error(
142
- `schema at ${where} declares a "type" that is neither a name nor an array of names`
143
- );
144
- }
145
239
  return declared.some(entry => typeAccepts(entry, actualType))
146
240
  ? null
147
241
  : `${where}: expected type ${declared.join(" or ")}, got ${actualType}`;
@@ -321,6 +321,28 @@ function rebaseBranch() {
321
321
  return "";
322
322
  }
323
323
 
324
+ /**
325
+ * The branch this worktree is working on, mid-rebase included.
326
+ *
327
+ * During a rebase HEAD is detached, so `git branch --show-current` answers with
328
+ * an empty string about a worktree that is very much on a branch. Every caller
329
+ * that asks "what branch is this" wants the rebase's head-name in that case,
330
+ * and this is the one place that decides it.
331
+ *
332
+ * It used to be decided in two places and only one of them knew about rebases.
333
+ * `assertStateBranch` fell back to `rebaseBranch()`; `writeState` did not. The
334
+ * consequence was a trap with no exit: a binding created mid-rebase recorded
335
+ * `branch: null`, every commit was then refused as "pending branch attachment",
336
+ * and `attach-branch` — the command that refusal names — itself refused with
337
+ * "create or check out a feature branch", because it was asking the question
338
+ * the other way. `git rebase --abort` is blocked by the same gate, so the only
339
+ * way out was to write the binding file by hand.
340
+ * @returns {string} The branch name, or "" on a detached HEAD with no rebase.
341
+ */
342
+ function activeBranch() {
343
+ return currentBranch() || rebaseBranch();
344
+ }
345
+
324
346
  function deepMerge(base, override) {
325
347
  if (Array.isArray(base) || Array.isArray(override)) return override;
326
348
  if (
@@ -619,7 +641,7 @@ function assertStateBranch(state) {
619
641
  // branch the rebase is rewriting (its head-name) so rebase picks and
620
642
  // `git rebase --continue` commits are not wedged (issue #1956). A detached
621
643
  // HEAD with NO rebase in progress still fails closed below.
622
- const branch = currentBranch() || rebaseBranch();
644
+ const branch = activeBranch();
623
645
  if (!branch)
624
646
  throw new TrackingError(
625
647
  "Cannot use a work-item binding from detached HEAD"
@@ -637,7 +659,7 @@ function assertStateBranch(state) {
637
659
  }
638
660
 
639
661
  function writeState(ref, provider = trackerContract().provider, options = {}) {
640
- const branch = currentBranch();
662
+ const branch = activeBranch();
641
663
  if (!branch && options.requireBranch)
642
664
  throw new TrackingError(
643
665
  "Create or check out a feature branch before binding a work item"
@@ -1891,12 +1913,45 @@ function backlinkAdvice(ref, prUrl, contract) {
1891
1913
  );
1892
1914
  }
1893
1915
 
1916
+ /**
1917
+ * The four gates a work item passes on its way to merged, and when each bites.
1918
+ *
1919
+ * They are four separate checks, enforced in four different places, at four
1920
+ * different moments — so clearing three says nothing about the fourth, and the
1921
+ * reader has no way to learn the fourth exists until it goes red. Measured: two
1922
+ * agents in one day each satisfied three and were surprised by the remaining
1923
+ * one, on a pull request that was otherwise finished.
1924
+ *
1925
+ * Listing all four in the report an operator actually reads costs five lines
1926
+ * and turns a sequence of surprises into one checklist. The role NAMES come
1927
+ * from the resolved contract rather than from Lisa's own defaults, because a
1928
+ * project configures its own, and a summary that confidently names the wrong
1929
+ * label is worse than none.
1930
+ * @param {object} contract Resolved tracker contract.
1931
+ * @returns {string} The checklist.
1932
+ */
1933
+ function gateSummary(contract) {
1934
+ const backlink =
1935
+ contract.verify === "full"
1936
+ ? `4. the item carries a managed \`${MARKER}\` backlink comment to this pull request — checked here, at CI time, and only under workItem.verify "full"`
1937
+ : `4. the tracker backlink is NOT required here: workItem.verify is "trailer", so this run contacted no tracker`;
1938
+ return [
1939
+ "",
1940
+ "All four gates, and when each one bites:",
1941
+ ` 1. the item carries the ready role "${contract.lifecycle.ready}" — required before the work may be created or claimed`,
1942
+ ` 2. the item carries the claimed role "${contract.lifecycle.claimed}" — required by the commit-msg hook, on every single commit`,
1943
+ " 3. every commit AND the pull-request body carry ONE matching `Work-Item:` trailer — required on commit, on push, and here",
1944
+ ` ${backlink}`,
1945
+ ].join("\n");
1946
+ }
1947
+
1894
1948
  /**
1895
1949
  * One refusal naming every unmet requirement, unrecoverable ones first.
1896
1950
  * @param {object[]} findings Unmet requirements.
1951
+ * @param {object} contract Resolved tracker contract.
1897
1952
  * @returns {string} The report.
1898
1953
  */
1899
- function requirementReport(findings) {
1954
+ function requirementReport(findings, contract) {
1900
1955
  const ordered = SCOPE_ORDER.flatMap(scope =>
1901
1956
  findings.filter(finding => finding.scope === scope)
1902
1957
  );
@@ -1909,7 +1964,7 @@ function requirementReport(findings) {
1909
1964
  (finding, index) => `${index + 1}. ${finding.scope} ${finding.message}`
1910
1965
  )
1911
1966
  .join("\n\n");
1912
- return `${head}\n\n${body}`;
1967
+ return `${head}\n\n${body}\n${gateSummary(contract)}`;
1913
1968
  }
1914
1969
 
1915
1970
  /**
@@ -1958,7 +2013,8 @@ function validatePrData(outcome, prUrl, prBody) {
1958
2013
  if (findings.length > before)
1959
2014
  findings[before].message += `. ${backlinkAdvice(ref, prUrl, contract)}`;
1960
2015
  }
1961
- if (findings.length > 0) throw new TrackingError(requirementReport(findings));
2016
+ if (findings.length > 0)
2017
+ throw new TrackingError(requirementReport(findings, contract));
1962
2018
  }
1963
2019
 
1964
2020
  /**
@@ -2419,7 +2475,7 @@ function main() {
2419
2475
  validateLive(ref, contract);
2420
2476
  const file = writeState(ref, contract.provider, { requireBranch: true });
2421
2477
  return console.log(
2422
- `work-item binding attached to ${currentBranch()} (${file})`
2478
+ `work-item binding attached to ${activeBranch()} (${file})`
2423
2479
  );
2424
2480
  }
2425
2481
  if (command === "clear") {
@@ -1 +1 @@
1
- {"version":3,"file":"lisa-owned-hash-ledger.d.ts","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AACA,6EAA6E;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAsbjC,CAAC"}
1
+ {"version":3,"file":"lisa-owned-hash-ledger.d.ts","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AACA,6EAA6E;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAybjC,CAAC"}
@@ -377,8 +377,10 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
377
377
  "ed643bb28356e9c3f7e351227e690763d6b5e275a78d232cd9dba2d1fc55cffe",
378
378
  ]),
379
379
  "scripts/lisa-schema-validate.mjs": Object.freeze([
380
+ "08cb25c2c49e0e5fd01e29861bbb8c90f612f9736ca2df86789fa72bd26d271e",
380
381
  "2ace82daacdebbbb00a7eceb09fbe82cabec04330a083ca10417b2ee4e0a63eb",
381
382
  "4a05a0ed70a274827fd2f0fd0c98890c66bee2fde70785b8379943ebe6650473",
383
+ "83c6e57e8168c5ae9fe538b23eec9016d0c959a4b5470d1ab160562ec2815de3",
382
384
  "9dd145c0f9dac6ed252b13d32e130dbab964da6cd357981b58541780ecb2f981",
383
385
  ]),
384
386
  "scripts/lisa-test-node.mjs": Object.freeze([
@@ -404,6 +406,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
404
406
  "ab0dede91c5c8a07984ae13aa48ec70cdcd2fa691b59617bc4b57998dc79a51c",
405
407
  "ad41c9097e9688f1ad48fe2cb27197d642124c52511267d43f1257539d8bb082",
406
408
  "b4e8aea72219f2c568429686a2ff1acd0da75ca26f244a66f3c4334297c8cd8e",
409
+ "bdeab1cb7cbb427a69bc8450075b5d36d364a7b71e69666fef6966097084b0a5",
407
410
  "c78df9d5f0f3fc388ff60a7db5898478a2a4d6d7325833f10384b5a8c62bb34a",
408
411
  "d22e31021947e5090c58ee5cfc9c4ee206bf2cf30d25f46b097bafcec59f55f3",
409
412
  "d63f21c64271875a9c796312d3af21ee5c0c855fbafa5af8a887e5df57ec1f25",
@@ -1 +1 @@
1
- {"version":3,"file":"lisa-owned-hash-ledger.js","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,6EAA6E;AAE7E;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAE/B,MAAM,CAAC,MAAM,CAAC;IAChB,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC;QACtC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC;QACxC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC;QACxC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC;QACxC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC;QACxC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,+BAA+B,EAAE,MAAM,CAAC,MAAM,CAAC;QAC7C,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC;QACrC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC;QACtC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC;QACtC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC;QACxC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,yBAAyB,EAAE,MAAM,CAAC,MAAM,CAAC;QACvC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,gCAAgC,EAAE,MAAM,CAAC,MAAM,CAAC;QAC9C,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,gCAAgC,EAAE,MAAM,CAAC,MAAM,CAAC;QAC9C,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,sCAAsC,EAAE,MAAM,CAAC,MAAM,CAAC;QACpD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,2CAA2C,EAAE,MAAM,CAAC,MAAM,CAAC;QACzD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,wCAAwC,EAAE,MAAM,CAAC,MAAM,CAAC;QACtD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,qCAAqC,EAAE,MAAM,CAAC,MAAM,CAAC;QACnD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,yCAAyC,EAAE,MAAM,CAAC,MAAM,CAAC;QACvD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,uCAAuC,EAAE,MAAM,CAAC,MAAM,CAAC;QACrD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,mCAAmC,EAAE,MAAM,CAAC,MAAM,CAAC;QACjD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,+BAA+B,EAAE,MAAM,CAAC,MAAM,CAAC;QAC7C,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,mCAAmC,EAAE,MAAM,CAAC,MAAM,CAAC;QACjD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,oCAAoC,EAAE,MAAM,CAAC,MAAM,CAAC;QAClD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,sCAAsC,EAAE,MAAM,CAAC,MAAM,CAAC;QACpD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,sCAAsC,EAAE,MAAM,CAAC,MAAM,CAAC;QACpD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,mCAAmC,EAAE,MAAM,CAAC,MAAM,CAAC;QACjD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC;QACtC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,iDAAiD,EAAE,MAAM,CAAC,MAAM,CAAC;QAC/D,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,oDAAoD,EAAE,MAAM,CAAC,MAAM,CAAC;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,gDAAgD,EAAE,MAAM,CAAC,MAAM,CAAC;QAC9D,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,uCAAuC,EAAE,MAAM,CAAC,MAAM,CAAC;QACrD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,gDAAgD,EAAE,MAAM,CAAC,MAAM,CAAC;QAC9D,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,yCAAyC,EAAE,MAAM,CAAC,MAAM,CAAC;QACvD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,qCAAqC,EAAE,MAAM,CAAC,MAAM,CAAC;QACnD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,wCAAwC,EAAE,MAAM,CAAC,MAAM,CAAC;QACtD,kEAAkE;KACnE,CAAC;IACF,2BAA2B,EAAE,MAAM,CAAC,MAAM,CAAC;QACzC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,8BAA8B,EAAE,MAAM,CAAC,MAAM,CAAC;QAC5C,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,mCAAmC,EAAE,MAAM,CAAC,MAAM,CAAC;QACjD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,4BAA4B,EAAE,MAAM,CAAC,MAAM,CAAC;QAC1C,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,kCAAkC,EAAE,MAAM,CAAC,MAAM,CAAC;QAChD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,4BAA4B,EAAE,MAAM,CAAC,MAAM,CAAC;QAC1C,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,4BAA4B,EAAE,MAAM,CAAC,MAAM,CAAC;QAC1C,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,wCAAwC,EAAE,MAAM,CAAC,MAAM,CAAC;QACtD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,sDAAsD,EAAE,MAAM,CAAC,MAAM,CAAC;QACpE,kEAAkE;KACnE,CAAC;IACF,oDAAoD,EAAE,MAAM,CAAC,MAAM,CAAC;QAClE,kEAAkE;KACnE,CAAC;IACF,uCAAuC,EAAE,MAAM,CAAC,MAAM,CAAC;QACrD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,wCAAwC,EAAE,MAAM,CAAC,MAAM,CAAC;QACtD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;CACH,CAAC,CAAC;AACH,sEAAsE"}
1
+ {"version":3,"file":"lisa-owned-hash-ledger.js","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAs2EpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAwzOjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
1
+ {"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAs2EpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAg0OjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
@@ -22,9 +22,9 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
22
22
  "all/copy-overwrite/scripts/lisa-postinstall.mjs": "98fe3adf3192a72f40eb75757193ce866f0a6123387377f6041e54d938df8d96",
23
23
  "all/copy-overwrite/scripts/lisa-reconcile-policy.mjs": "3c062d0b79961a9a93a822507e893dcdaa71d65d735557727d20464c2489d812",
24
24
  "all/copy-overwrite/scripts/lisa-run-gates.mjs": "cd79864ea6ccfbf33341d537a08436aefbb9eff55a78bb3ff5002f8b3b9cfe55",
25
- "all/copy-overwrite/scripts/lisa-schema-validate.mjs": "2ace82daacdebbbb00a7eceb09fbe82cabec04330a083ca10417b2ee4e0a63eb",
25
+ "all/copy-overwrite/scripts/lisa-schema-validate.mjs": "08cb25c2c49e0e5fd01e29861bbb8c90f612f9736ca2df86789fa72bd26d271e",
26
26
  "all/copy-overwrite/scripts/lisa-test-node.mjs": "31b338144af00e20e3de02202982846d7333433a9bbda76a8c77d50e6fdbc47b",
27
- "all/copy-overwrite/scripts/lisa-work-item.mjs": "ad41c9097e9688f1ad48fe2cb27197d642124c52511267d43f1257539d8bb082",
27
+ "all/copy-overwrite/scripts/lisa-work-item.mjs": "bdeab1cb7cbb427a69bc8450075b5d36d364a7b71e69666fef6966097084b0a5",
28
28
  "all/copy-overwrite/scripts/schemas/lisa-command-envelope.v1.schema.json": "d153b7c2953a30f180e38f09e98240c63327f5196eeba9bdf545e5a1f125a879",
29
29
  "all/copy-overwrite/scripts/schemas/lisa-state-contract.v1.schema.json": "6b7afe4ffeba8aaa53871d8855172f7eacde05953b1321145218ec638ff5c1c4",
30
30
  "all/create-only/.agents/rules/README.md": "fd260fd9b2934d0d698a8098dfff07fedc071849d588e602d773666678c3d540",
@@ -7596,6 +7596,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
7596
7596
  "tests/integration/support/reusable-workflow-scopes.ts": true,
7597
7597
  "tests/integration/threshold-ratchet-gate-fail-closed.test.ts": true,
7598
7598
  "tests/integration/tracked-source-nul-bytes.test.ts": true,
7599
+ "tests/support/work-item-cli.ts": true,
7599
7600
  "tests/unit/agy/block-no-verify-agy.test.ts": true,
7600
7601
  "tests/unit/agy/mcp-collect.test.ts": true,
7601
7602
  "tests/unit/agy/mcp-installer.test.ts": true,
@@ -8030,6 +8031,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
8030
8031
  "tests/unit/scripts/required-check-promotions.repo.test.ts": true,
8031
8032
  "tests/unit/scripts/required-check-promotions.test.ts": true,
8032
8033
  "tests/unit/scripts/required-check-promotions.wiring.test.ts": true,
8034
+ "tests/unit/scripts/schema-validate-keyword-forms.test.ts": true,
8033
8035
  "tests/unit/scripts/security-floors.test.ts": true,
8034
8036
  "tests/unit/scripts/setup-jira-cli-config.test.ts": true,
8035
8037
  "tests/unit/scripts/skipped-required-checks-wiring.test.ts": true,
@@ -8045,6 +8047,12 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
8045
8047
  "tests/unit/scripts/vacuous-required-checks.test.ts": true,
8046
8048
  "tests/unit/scripts/verification-coverage.test.ts": true,
8047
8049
  "tests/unit/scripts/work-item-backlink-exactness.test.ts": true,
8050
+ "tests/unit/scripts/work-item-cli-binding.test.ts": true,
8051
+ "tests/unit/scripts/work-item-cli-commit.test.ts": true,
8052
+ "tests/unit/scripts/work-item-cli-pull-request.test.ts": true,
8053
+ "tests/unit/scripts/work-item-cli-rebase.test.ts": true,
8054
+ "tests/unit/scripts/work-item-cli-trackers.test.ts": true,
8055
+ "tests/unit/scripts/work-item-cli-writes.test.ts": true,
8048
8056
  "tests/unit/scripts/work-item-github-failure-diagnosis.test.ts": true,
8049
8057
  "tests/unit/scripts/work-item-run-and-gh-version.test.ts": true,
8050
8058
  "tests/unit/scripts/work-item-tracker-unreachable.test.ts": true,