@codyswann/lisa 2.323.1 → 2.324.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.
- package/all/copy-overwrite/scripts/lisa-work-item.mjs +77 -5
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +11 -6
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/strategies/package-lisa.d.ts.map +1 -1
- package/dist/strategies/package-lisa.js +67 -2
- package/dist/strategies/package-lisa.js.map +1 -1
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-remote-env/SKILL.md +24 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-remote-env/assets/session-start.sh +17 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +37 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-remote-env/scripts/toolchain.mjs +7 -3
- package/plugins/lisa/skills/lisa-setup-remote-env/SKILL.md +24 -0
- package/plugins/lisa/skills/lisa-setup-remote-env/assets/session-start.sh +17 -0
- package/plugins/lisa/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +37 -0
- package/plugins/lisa/skills/lisa-setup-remote-env/scripts/toolchain.mjs +7 -3
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-setup-remote-env/SKILL.md +24 -0
- package/plugins/lisa-agy/skills/lisa-setup-remote-env/assets/session-start.sh +17 -0
- package/plugins/lisa-agy/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +37 -0
- package/plugins/lisa-agy/skills/lisa-setup-remote-env/scripts/toolchain.mjs +7 -3
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/skills/lisa-setup-remote-env/SKILL.md +24 -0
- package/plugins/lisa-copilot/skills/lisa-setup-remote-env/assets/session-start.sh +17 -0
- package/plugins/lisa-copilot/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +37 -0
- package/plugins/lisa-copilot/skills/lisa-setup-remote-env/scripts/toolchain.mjs +7 -3
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/skills/lisa-setup-remote-env/SKILL.md +24 -0
- package/plugins/lisa-cursor/skills/lisa-setup-remote-env/assets/session-start.sh +17 -0
- package/plugins/lisa-cursor/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +37 -0
- package/plugins/lisa-cursor/skills/lisa-setup-remote-env/scripts/toolchain.mjs +7 -3
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/skills/lisa-setup-remote-env/SKILL.md +24 -0
- package/plugins/src/base/skills/lisa-setup-remote-env/assets/session-start.sh +17 -0
- package/plugins/src/base/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +37 -0
- package/plugins/src/base/skills/lisa-setup-remote-env/scripts/toolchain.mjs +7 -3
- package/scripts/lisa-enforcement-fallback.sh +57 -0
- package/scripts/lisa-remote-env/session-start.sh +17 -0
|
@@ -45,6 +45,29 @@ class TrackingError extends Error {}
|
|
|
45
45
|
* @param {string} noun What the reference names.
|
|
46
46
|
* @returns {string} A message naming the actual fault.
|
|
47
47
|
*/
|
|
48
|
+
export class TrackerUnreachableError extends TrackingError {}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Turn a failed `gh` invocation into the right kind of refusal.
|
|
52
|
+
*
|
|
53
|
+
* The distinction is the whole point: a missing binary or a refused credential
|
|
54
|
+
* means the tracker could not be ASKED, while a "no" from the tracker is an
|
|
55
|
+
* answer. Absence of evidence is not evidence of absence, and only the first
|
|
56
|
+
* kind may be degraded — treating them alike would either strand finished work
|
|
57
|
+
* or wave through an item that genuinely is not committable.
|
|
58
|
+
* @param {{status: number|null, error?: Error, stderr?: string}} result Spawn result.
|
|
59
|
+
* @param {string} ref Work item reference.
|
|
60
|
+
* @returns {Error} The error to throw.
|
|
61
|
+
*/
|
|
62
|
+
export function githubFailure(result, ref) {
|
|
63
|
+
const reason = githubFailureReason(result, ref, "GitHub issue");
|
|
64
|
+
const unreachable =
|
|
65
|
+
result.error?.code === "ENOENT" || /cannot authenticate/.test(reason);
|
|
66
|
+
return unreachable
|
|
67
|
+
? new TrackerUnreachableError(reason)
|
|
68
|
+
: new TrackingError(reason);
|
|
69
|
+
}
|
|
70
|
+
|
|
48
71
|
export function githubFailureReason(result, ref, noun) {
|
|
49
72
|
if (result.error?.code === "ENOENT") {
|
|
50
73
|
return (
|
|
@@ -577,8 +600,7 @@ function githubIssue(ref, contract) {
|
|
|
577
600
|
allowFailure: true,
|
|
578
601
|
}
|
|
579
602
|
);
|
|
580
|
-
if (result.status !== 0)
|
|
581
|
-
throw new TrackingError(githubFailureReason(result, ref, "GitHub issue"));
|
|
603
|
+
if (result.status !== 0) throw githubFailure(result, ref);
|
|
582
604
|
const issue = safeJson(result.stdout, `GitHub issue ${ref}`);
|
|
583
605
|
if (String(issue.number) !== number)
|
|
584
606
|
throw new TrackingError(`GitHub returned the wrong issue for ${ref}`);
|
|
@@ -814,10 +836,48 @@ function linearIssue(ref, contract) {
|
|
|
814
836
|
return issue;
|
|
815
837
|
}
|
|
816
838
|
|
|
839
|
+
/**
|
|
840
|
+
* Ask the tracker whether this work item may be committed against.
|
|
841
|
+
*
|
|
842
|
+
* When the tracker cannot be REACHED, the live checks are reported as skipped
|
|
843
|
+
* rather than enforced or silently dropped. Everything checkable without a
|
|
844
|
+
* network — the trailer is present, well formed, and matches this branch's
|
|
845
|
+
* binding — has already run by the time this is called, and the semantic
|
|
846
|
+
* checks it cannot do here are re-run in CI by a REQUIRED status check
|
|
847
|
+
* ("Work-Item Traceability"), with credentials, before anything can merge.
|
|
848
|
+
*
|
|
849
|
+
* So the guarantee is not lost; it moves to a gate that cannot be bypassed.
|
|
850
|
+
* That is the whole justification, and it holds only while that check stays
|
|
851
|
+
* required — if it is ever made optional, this degradation becomes a hole.
|
|
852
|
+
*
|
|
853
|
+
* The alternative was worse in both directions. Refusing outright strands
|
|
854
|
+
* finished, green work on any surface without a GitHub credential — a cloud
|
|
855
|
+
* container, for one — and the agent's only remaining move is a bypass that
|
|
856
|
+
* skips the offline checks too. Enforcing nothing hides the difference between
|
|
857
|
+
* "could not ask" and "the tracker said no".
|
|
858
|
+
* @param {string} ref Work item reference.
|
|
859
|
+
* @param {object} [contract] Tracker contract.
|
|
860
|
+
* @returns {object|undefined} The live item, or undefined when unreachable.
|
|
861
|
+
*/
|
|
817
862
|
function validateLive(ref, contract = trackerContract()) {
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
863
|
+
try {
|
|
864
|
+
if (contract.provider === "github") return githubIssue(ref, contract);
|
|
865
|
+
if (contract.provider === "jira") return jiraIssue(ref, contract);
|
|
866
|
+
return linearIssue(ref, contract);
|
|
867
|
+
} catch (error) {
|
|
868
|
+
if (!(error instanceof TrackerUnreachableError)) throw error;
|
|
869
|
+
// Loud on stderr, never silent: a degradation nobody sees is the failure
|
|
870
|
+
// mode this exists to avoid, not a milder version of it.
|
|
871
|
+
console.error(
|
|
872
|
+
`\n⚠️ Work-item live validation SKIPPED for ${ref}.\n` +
|
|
873
|
+
`${error.message}\n\n` +
|
|
874
|
+
`The offline checks still ran: the trailer is present, well formed and ` +
|
|
875
|
+
`bound to this branch.\nWhat could not be checked here — that the item ` +
|
|
876
|
+
`is open, claimed and a leaf — is re-run\nwith credentials by the ` +
|
|
877
|
+
`required "Work-Item Traceability" check before this can merge.\n`
|
|
878
|
+
);
|
|
879
|
+
return undefined;
|
|
880
|
+
}
|
|
821
881
|
}
|
|
822
882
|
|
|
823
883
|
function textContainsBacklink(value, prUrl) {
|
|
@@ -836,6 +896,18 @@ function assertBacklink(
|
|
|
836
896
|
contract,
|
|
837
897
|
issue = validateLive(ref, contract)
|
|
838
898
|
) {
|
|
899
|
+
// The PR check never degrades, because it IS the re-check the local hooks
|
|
900
|
+
// degrade in favour of. A required status check that passes when it could
|
|
901
|
+
// not reach the tracker would make the whole arrangement circular: local
|
|
902
|
+
// defers to CI, CI defers to nothing.
|
|
903
|
+
if (!issue) {
|
|
904
|
+
throw new TrackingError(
|
|
905
|
+
`cannot verify ${ref} against the tracker, and this check is the one ` +
|
|
906
|
+
`that must.\nLocal hooks may skip live validation when the tracker ` +
|
|
907
|
+
`is unreachable; this check may not,\nbecause it is what they defer ` +
|
|
908
|
+
`to. Fix the tracker credential for this run.`
|
|
909
|
+
);
|
|
910
|
+
}
|
|
839
911
|
if (contract.provider === "github") {
|
|
840
912
|
const native = (issue.closedByPullRequestsReferences ?? []).some(
|
|
841
913
|
pr => pr.url === prUrl
|
|
@@ -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,
|
|
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,CAknEpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CA4jNjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
4
4
|
"all/copy-contents/.gitattributes": "9d3831007e681186a3673e1037ef3fc82980cab2fc04e27c0868e562912c9e9f",
|
|
5
5
|
"all/copy-contents/gitignore": "2dbf7fd2f2020fc7824c432342002d9ca3ebb57b2872e761b14e942b23479a11",
|
|
6
|
-
"all/copy-overwrite/scripts/lisa-work-item.mjs": "
|
|
6
|
+
"all/copy-overwrite/scripts/lisa-work-item.mjs": "6a8be8577242588f14ab52b25b2a22b6def53aefa9513b4d3d7c49f4d8027079",
|
|
7
7
|
"all/create-only/.claude/rules/PROJECT_RULES.md": "6e1c7923ad2a15356babc60c97e7f97be728d790af285b6a7cd7d1b4d39cd97f",
|
|
8
8
|
"all/create-only/.lisaignore": "3c9827e7e98daa46510b5357cd6dd9406da1821e64cc46d2eea9f311cd6d06b9",
|
|
9
9
|
"all/create-only/scripts/remote-agent-aws-setup.sh": "7677908a345891810d2104ba8b2fd1a8318bb29c408fb5ce0110d57beef9b556",
|
|
@@ -559,11 +559,11 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
559
559
|
"plugins/src/base/skills/lisa-setup-linear/SKILL.md": "ec76f832a6df6f58b163f7f5ba6826ed2fcbddc91e44a8372e874858e4d0c518",
|
|
560
560
|
"plugins/src/base/skills/lisa-setup-notion/SKILL.md": "f5a1e9290789fd1c33675168d30461fb24a11c98a433ef777c1f536bc2f905ef",
|
|
561
561
|
"plugins/src/base/skills/lisa-setup-remote-aws/SKILL.md": "80fbf157f9c562c033886c25a99b37356602edd9e61cd2d492f339769ddcf97e",
|
|
562
|
-
"plugins/src/base/skills/lisa-setup-remote-env/SKILL.md": "
|
|
563
|
-
"plugins/src/base/skills/lisa-setup-remote-env/assets/session-start.sh": "
|
|
562
|
+
"plugins/src/base/skills/lisa-setup-remote-env/SKILL.md": "821f9f7db39259c3aef24dc369c7cdcfb55a85d61742b32ac2a961e1b3e263a4",
|
|
563
|
+
"plugins/src/base/skills/lisa-setup-remote-env/assets/session-start.sh": "cb63d08b14ab7aa2d405e6770e0cf7db5d6588ae1dcb924ea6224b026fcff496",
|
|
564
564
|
"plugins/src/base/skills/lisa-setup-remote-env/assets/setup.sh": "c04afb1cf8e14a2713645228e679fa7772559488330a240ec0297cae6afd03e2",
|
|
565
|
-
"plugins/src/base/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs": "
|
|
566
|
-
"plugins/src/base/skills/lisa-setup-remote-env/scripts/toolchain.mjs": "
|
|
565
|
+
"plugins/src/base/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs": "1f451881342364d086640b59914a3b07286a3734caa63f01efe64531d3bde7e4",
|
|
566
|
+
"plugins/src/base/skills/lisa-setup-remote-env/scripts/toolchain.mjs": "8822af39d0251a2e4fb0eac9157ba9e63ea813d914240ca0cacacd6cb7cbb5bb",
|
|
567
567
|
"plugins/src/base/skills/lisa-setup-remote-env/scripts/verify-remote-env.mjs": "82bc2a27a0a5afb2ff413a88365c619fd7f0eaada5de3ccabf2000938f0607a4",
|
|
568
568
|
"plugins/src/base/skills/lisa-setup-sonar/SKILL.md": "53fbd8acce4b5e47e88195a7b90d5be424fa6ef7ad872f52c50467c690664c3b",
|
|
569
569
|
"plugins/src/base/skills/lisa-sonarcloud-access/SKILL.md": "031acb01195ae59010a65335da98d46a1d6080e749823d6f6d157938d9e96648",
|
|
@@ -985,11 +985,12 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
985
985
|
"scripts/lib/reusable-workflow-contract.d.mts": "791f01b55dd7a6b5d9a5f4cb9c44167caa146c2fc3c31a2ae4c2d8a350adc2f1",
|
|
986
986
|
"scripts/lib/reusable-workflow-contract.mjs": "134ee2a327290f066f1eb318b5ed53c711557c3e10ed462c00ff5c97cfb20863",
|
|
987
987
|
"scripts/lisa-commit-and-pr-local.sh": "605409c3ce6ec38ad3275604291a1ceae98f7807a605654263bc14f811c03903",
|
|
988
|
+
"scripts/lisa-enforcement-fallback.sh": "8dc942ac4edc2017d6b8277296c8f80542e7c024eef1bb65de609979d0ca9a0e",
|
|
988
989
|
"scripts/lisa-github-environments.sh": "0a76e92f108519abaf3e29991299ec3b0db20ea533e69e6d2a53d802dba9c370",
|
|
989
990
|
"scripts/lisa-github-repo-settings.sh": "4afbccdfb08c62ba13afee42ec8561a28facf87c61f6f4b80000115328364d54",
|
|
990
991
|
"scripts/lisa-github-repo-setup.sh": "dc2f1c9d718aa34ba57161120d9319b5f78fe6b0b496d8e3c77226a08795aa36",
|
|
991
992
|
"scripts/lisa-github-rulesets.sh": "920a43ba268421b6fe55096062bd85850468bee9389f6006ad7c671010e7cccb",
|
|
992
|
-
"scripts/lisa-remote-env/session-start.sh": "
|
|
993
|
+
"scripts/lisa-remote-env/session-start.sh": "cb63d08b14ab7aa2d405e6770e0cf7db5d6588ae1dcb924ea6224b026fcff496",
|
|
993
994
|
"scripts/lisa-remote-env/setup.sh": "c04afb1cf8e14a2713645228e679fa7772559488330a240ec0297cae6afd03e2",
|
|
994
995
|
"scripts/lisa-update-local.sh": "c811f9e10dbcb38499a9791c1ae9051460b347051d04a1d2046925bab9a53c96",
|
|
995
996
|
"scripts/lisa-work-item.mjs": "51081847e980f314a764c2e50a7a121b1ced9ef4b980f33898057de4c7b852e6",
|
|
@@ -6543,6 +6544,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
6543
6544
|
"scripts/lib/reusable-workflow-contract.d.mts": true,
|
|
6544
6545
|
"scripts/lib/reusable-workflow-contract.mjs": true,
|
|
6545
6546
|
"scripts/lisa-commit-and-pr-local.sh": true,
|
|
6547
|
+
"scripts/lisa-enforcement-fallback.sh": true,
|
|
6546
6548
|
"scripts/lisa-github-environments.sh": true,
|
|
6547
6549
|
"scripts/lisa-github-repo-settings.sh": true,
|
|
6548
6550
|
"scripts/lisa-github-repo-setup.sh": true,
|
|
@@ -7174,6 +7176,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
7174
7176
|
"tests/unit/hooks/enforce-verification-gate-preserve.test.ts": true,
|
|
7175
7177
|
"tests/unit/hooks/enforce-verification-gate-v1.test.ts": true,
|
|
7176
7178
|
"tests/unit/hooks/enforce-verification-gate-v2.test.ts": true,
|
|
7179
|
+
"tests/unit/hooks/enforcement-fallback.test.ts": true,
|
|
7177
7180
|
"tests/unit/hooks/enforcement-gates-e2e.test.ts": true,
|
|
7178
7181
|
"tests/unit/hooks/inject-rules.test.ts": true,
|
|
7179
7182
|
"tests/unit/hooks/install-pkgs-worktree-node-modules.test.ts": true,
|
|
@@ -7253,6 +7256,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
7253
7256
|
"tests/unit/scripts/upstream-evidence-manifest.test.ts": true,
|
|
7254
7257
|
"tests/unit/scripts/verification-coverage.test.ts": true,
|
|
7255
7258
|
"tests/unit/scripts/work-item-github-failure-diagnosis.test.ts": true,
|
|
7259
|
+
"tests/unit/scripts/work-item-tracker-unreachable.test.ts": true,
|
|
7256
7260
|
"tests/unit/secrets/automation-workflow.test.ts": true,
|
|
7257
7261
|
"tests/unit/secrets/bootstrap-key-naming.test.ts": true,
|
|
7258
7262
|
"tests/unit/secrets/doctor-secrets.test.ts": true,
|
|
@@ -7261,6 +7265,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
7261
7265
|
"tests/unit/secrets/remote-env-bindir-path.test.ts": true,
|
|
7262
7266
|
"tests/unit/secrets/remote-env-installed-copy.test.ts": true,
|
|
7263
7267
|
"tests/unit/secrets/remote-env-phases.test.ts": true,
|
|
7268
|
+
"tests/unit/secrets/remote-env-session-start-hook.test.ts": true,
|
|
7264
7269
|
"tests/unit/secrets/remote-env-setup-field.test.ts": true,
|
|
7265
7270
|
"tests/unit/secrets/remote-env-skill-resolution.test.ts": true,
|
|
7266
7271
|
"tests/unit/secrets/remote-env-toolchain.test.ts": true,
|