@outerlayer/cli 0.22.2 → 0.23.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 (97) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/{agent-setup-KXPDPTAJ.js → agent-setup-SNDCEHG2.js} +13 -10
  3. package/dist/{artifact-link-cmd-OWRI5AJX.js → artifact-link-cmd-LEI6EOZE.js} +2 -2
  4. package/dist/{build-6WRNZPVR.js → build-WHHFA7KM.js} +2 -2
  5. package/dist/build-info.json +1 -1
  6. package/dist/{builder-G3MLDMTI.js → builder-7FBQAWQZ.js} +3 -3
  7. package/dist/{check-N6WLZCER.js → check-3CGLWMHM.js} +32 -32
  8. package/dist/{chunk-ZCXP35T3.js → chunk-2TT7DEMZ.js} +2 -2
  9. package/dist/{chunk-BVR6MQLS.js → chunk-6AOZD3LY.js} +2 -2
  10. package/dist/{chunk-WKSBSEWT.js → chunk-BOG4ENP7.js} +9 -9
  11. package/dist/{chunk-G3IJ3N6F.js → chunk-BUP5N3X6.js} +1 -1
  12. package/dist/{chunk-FVDVC2GF.js → chunk-C2XZBNHY.js} +1 -1
  13. package/dist/{chunk-FQE5RDHI.js → chunk-C64D7HR3.js} +5 -5
  14. package/dist/{chunk-AEKSX4EY.js → chunk-CBCKD6DO.js} +1 -1
  15. package/dist/{chunk-JD6GWYY7.js → chunk-D64E222W.js} +4 -4
  16. package/dist/{chunk-U6RKHNC7.js → chunk-DJYOCD65.js} +6 -6
  17. package/dist/{chunk-QZX6DAAW.js → chunk-FX6IHR5C.js} +8 -8
  18. package/dist/{chunk-IPS2JCHK.js → chunk-G3LHWUBK.js} +4 -4
  19. package/dist/{chunk-EMUNEAQK.js → chunk-GXV73IIS.js} +3 -3
  20. package/dist/{chunk-5OCIHFGE.js → chunk-HBISTTG3.js} +32 -23
  21. package/dist/chunk-JKNYTNYD.js +151 -0
  22. package/dist/{chunk-IMCVQF5F.js → chunk-KGKFEONR.js} +3 -3
  23. package/dist/{chunk-USWVXQIH.js → chunk-MQ743JX3.js} +3 -3
  24. package/dist/{chunk-XR56WEA5.js → chunk-OGMZJWWD.js} +1 -1
  25. package/dist/{chunk-KOIMUHIS.js → chunk-QSEPKZXR.js} +13 -13
  26. package/dist/{chunk-7VUK5RFS.js → chunk-QZBXLLTV.js} +36 -1
  27. package/dist/{chunk-WFSUUUAN.js → chunk-RKOTJQVG.js} +1 -1
  28. package/dist/{chunk-2CPOAPU4.js → chunk-TFGXOHF6.js} +12 -12
  29. package/dist/{chunk-V7SAQ645.js → chunk-VJBFQP3H.js} +21 -12
  30. package/dist/{chunk-ZNPE7FW5.js → chunk-VPEGE3QZ.js} +1 -1
  31. package/dist/{chunk-W3SWJ2TD.js → chunk-VWFOKRYS.js} +5 -2
  32. package/dist/{chunk-XCRZTXRL.js → chunk-WX2WEERU.js} +63 -43
  33. package/dist/{chunk-4542B3RR.js → chunk-WY7HFY62.js} +3 -3
  34. package/dist/{chunk-VSUXCMMH.js → chunk-XFGL53GU.js} +51 -33
  35. package/dist/{chunk-SNVXHNU7.js → chunk-XGPC3IOR.js} +3 -3
  36. package/dist/{chunk-HWZCE745.js → chunk-XOEV4FVK.js} +2 -2
  37. package/dist/{chunk-EAQSOE62.js → chunk-XSPA5ODY.js} +21 -19
  38. package/dist/{chunk-4OYKJJ2V.js → chunk-ZKWKQIJU.js} +86 -6
  39. package/dist/{chunk-B42BIYC6.js → chunk-ZLZ3XVPI.js} +2 -2
  40. package/dist/{claude-launcher-QD3C427Y.js → claude-launcher-KEESTJHO.js} +5 -5
  41. package/dist/{cli-A2Y67WAB.js → cli-44WGGICQ.js} +115 -108
  42. package/dist/{command-Q5Q2EIO4.js → command-4FAP2D3P.js} +21 -21
  43. package/dist/{connect-cmd-TNGEIWCA.js → connect-cmd-6DUTUK63.js} +7 -7
  44. package/dist/{context-cleanup-DSA3HGQU.js → context-cleanup-LTH77FC3.js} +3 -3
  45. package/dist/{control-plane-launch-HE6OSWKO.js → control-plane-launch-SEYCOZFH.js} +7 -7
  46. package/dist/{dist-7IH56ELA.js → dist-SOH3O24Y.js} +2 -2
  47. package/dist/{docker-JU422JL7.js → docker-KMK4LOET.js} +3 -3
  48. package/dist/{doctor-BRN4BGMA.js → doctor-4H77CEB7.js} +23 -23
  49. package/dist/{emit-artifact-cmd-GPAJCCUC.js → emit-artifact-cmd-XCZ3ALLV.js} +11 -11
  50. package/dist/emit-cmd-WQH2NK7H.js +15 -0
  51. package/dist/{emit-criteria-cmd-R3FKHSQG.js → emit-criteria-cmd-JE72JHKJ.js} +8 -8
  52. package/dist/{emit-finding-cmd-IK7RAVP5.js → emit-finding-cmd-ILIDRMYN.js} +8 -8
  53. package/dist/{emit-result-cmd-5FJTF7YD.js → emit-result-cmd-WPKG5YAS.js} +11 -11
  54. package/dist/{emit-step-cmd-VRTD5YPP.js → emit-step-cmd-OVMLQSL6.js} +9 -9
  55. package/dist/{governing-source-WM736XR4.js → governing-source-EQBKPME7.js} +15 -15
  56. package/dist/{guest-init-2OZ4YC7R.js → guest-init-HWSE7W6L.js} +2 -2
  57. package/dist/{hook-fast-QUGEI2IT.js → hook-fast-27SHD72I.js} +1 -1
  58. package/dist/{import-capture-cmd-Q56DDZVO.js → import-capture-cmd-TCOKNVBM.js} +12 -7
  59. package/dist/{import-ruler-cmd-T6LLO6Q7.js → import-ruler-cmd-VJOHOJQ7.js} +2 -2
  60. package/dist/index.js +4 -4
  61. package/dist/{init-X7FCQDFX.js → init-HAAHIQFN.js} +22 -22
  62. package/dist/{init-U3I43XCP.js → init-WQ62BXDN.js} +22 -22
  63. package/dist/{init-cmd-VCKH2DUQ.js → init-cmd-VPFIDY64.js} +19 -18
  64. package/dist/init-update-UZIJ2FMU.js +529 -0
  65. package/dist/layout-UOJQGEPW.js +10 -0
  66. package/dist/{login-browser-BN5UKPHS.js → login-browser-4OMZFP3U.js} +4 -3
  67. package/dist/{logout-cmd-RZFWTNYD.js → logout-cmd-5V5MMBSY.js} +2 -2
  68. package/dist/{loop-P3QDQOE5.js → loop-JPW2QJ64.js} +32 -32
  69. package/dist/{machine-EEFOW32K.js → machine-PGDRWPI2.js} +21 -21
  70. package/dist/{mcp-install-cmd-GD4QUP7Z.js → mcp-install-cmd-GGWB3JJ2.js} +2 -2
  71. package/dist/{runner-identity-FTHZFMGY.js → runner-identity-IIZ3RK7M.js} +3 -3
  72. package/dist/{runner-key-O42EUXQU.js → runner-key-BPP5XRYR.js} +22 -22
  73. package/dist/{session-sender-HF6DXFA2.js → session-sender-EKKZ5DEU.js} +12 -12
  74. package/dist/{spec-cmd-ADPH236D.js → spec-cmd-JDHGNFVJ.js} +9 -9
  75. package/dist/{starter-pack-5EQYGSJF.js → starter-pack-55EFILC5.js} +7 -4
  76. package/dist/{status-LXFIVGP3.js → status-UCQDEMFX.js} +26 -26
  77. package/dist/{sync-cmd-5XS3CUV5.js → sync-cmd-NSVXOYFJ.js} +11 -11
  78. package/dist/{watch-FBZHZV56.js → watch-NQVZWPBJ.js} +11 -11
  79. package/dist/{work-claim-cmd-LIIINECF.js → work-claim-cmd-FPJXQAXP.js} +11 -11
  80. package/dist/{work-cmd-SM6DY2WK.js → work-cmd-FMPDXPU6.js} +9 -9
  81. package/dist/{work-comment-cmd-VYVXGT4W.js → work-comment-cmd-ZVUE2IUN.js} +9 -9
  82. package/dist/{work-logs-cmd-XZSCWWMW.js → work-logs-cmd-CQH2SYT4.js} +9 -9
  83. package/dist/{work-open-pr-cmd-YZNC3P3R.js → work-open-pr-cmd-YY2OGJOI.js} +10 -10
  84. package/dist/{work-pr-cmd-AMN23KFJ.js → work-pr-cmd-EHFTEVJO.js} +9 -9
  85. package/dist/{work-stop-cmd-HSR2GOJJ.js → work-stop-cmd-LGWSBSBT.js} +9 -9
  86. package/package.json +1 -1
  87. package/skill-pack/maintained/outerlayer-build/references/agent-briefs.md +7 -1
  88. package/skill-pack/maintained/outerlayer-build/references/criteria-judge.md +10 -0
  89. package/skill-pack/maintained/outerlayer-build/references/review-briefs.md +4 -0
  90. package/skill-pack/maintained/outerlayer-cli/SKILL.md +5 -3
  91. package/dist/emit-cmd-3W5IO5ET.js +0 -14
  92. package/dist/init-update-TCMH7M3Q.js +0 -210
  93. package/dist/{chunk-F35VMF5M.js → chunk-GOSFARMS.js} +1 -1
  94. package/dist/{chunk-3AZYLAJC.js → chunk-QILR6TZP.js} +1 -1
  95. package/dist/{chunk-DIB2WLBL.js → chunk-YVZJ6GKF.js} +1 -1
  96. package/dist/{chunk-SFHR45FA.js → chunk-Z42JY3LQ.js} +1 -1
  97. package/dist/{mcp-serve-cmd-TQSPFRC7.js → mcp-serve-cmd-CNRC5AL5.js} +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @outerlayer/cli
2
2
 
3
+ ## 0.23.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 9e49a10: `outerlayer init` keeps instructions in `AGENTS.md` and skills in `.agents/skills/`, with a `.claude/skills` link to `../.agents/skills`. Nothing generated is committed. `outerlayer init --update` moves an existing repository to this layout and removes the generated copies. It never deletes a file you edited. In a repository that uses only Claude Code or Codex, `outerlayer context emit` prints a notice that names `init --update`.
8
+
9
+ ### Patch Changes
10
+
11
+ - 9810558: The build skill's criteria judge marks a criterion not satisfied when its test checks a stand-in for the outcome, such as the arguments a program starts with, or when the judge's own reason says part of the outcome is not asserted. The implementer and test-strength reviewer briefs say the same: a test proves a criterion only when it runs the code that produces the outcome.
12
+
3
13
  ## 0.22.2
4
14
 
5
15
  ### Patch Changes
@@ -1,21 +1,24 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { keepHandWritten, runAgentSetup } from './chunk-4OYKJJ2V.js';
4
- import './chunk-XCRZTXRL.js';
5
- import './chunk-SNVXHNU7.js';
6
- import './chunk-USWVXQIH.js';
3
+ export { keepHandWritten, runAgentSetup } from './chunk-ZKWKQIJU.js';
4
+ import './chunk-WX2WEERU.js';
5
+ import './chunk-VJBFQP3H.js';
6
+ import './chunk-XGPC3IOR.js';
7
+ import './chunk-MQ743JX3.js';
7
8
  import './chunk-QS43O4DR.js';
8
9
  import './chunk-ZJSNLVCE.js';
9
10
  import './chunk-BJ3KTMDH.js';
10
- import './chunk-DIB2WLBL.js';
11
- import './chunk-EABW6AJQ.js';
12
- import './chunk-V7SAQ645.js';
13
- import './chunk-5OCIHFGE.js';
11
+ import './chunk-YVZJ6GKF.js';
14
12
  import './chunk-ANPNT6PM.js';
13
+ import './chunk-EABW6AJQ.js';
14
+ import './chunk-JKNYTNYD.js';
15
+ import './chunk-HBISTTG3.js';
15
16
  import './chunk-CRB3POP4.js';
17
+ import './chunk-VWFOKRYS.js';
16
18
  import './chunk-YQR6E6OV.js';
17
- import './chunk-WFSUUUAN.js';
18
- import './chunk-7VUK5RFS.js';
19
+ import './chunk-TUSYOL2O.js';
20
+ import './chunk-RKOTJQVG.js';
21
+ import './chunk-QZBXLLTV.js';
19
22
  import './chunk-VNVZDWO3.js';
20
23
  import './chunk-RA3O54FC.js';
21
24
  import './chunk-OW52QLK3.js';
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { sanitizeTerminal, readEffectiveArtifactSpoolState } from './chunk-G3IJ3N6F.js';
3
+ import { sanitizeTerminal, readEffectiveArtifactSpoolState } from './chunk-BUP5N3X6.js';
4
4
  import { cliInvocation } from './chunk-CRB3POP4.js';
5
- import './chunk-7VUK5RFS.js';
5
+ import './chunk-QZBXLLTV.js';
6
6
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
7
7
  import './chunk-Z5GEFMRW.js';
8
8
 
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { buildRepositoryImage } from './chunk-3AZYLAJC.js';
4
- export { RecipeError } from './chunk-3W333NFO.js';
3
+ export { buildRepositoryImage } from './chunk-QILR6TZP.js';
5
4
  import './chunk-XACXXKQ5.js';
6
5
  import './chunk-JBJTC3UU.js';
6
+ export { RecipeError } from './chunk-3W333NFO.js';
7
7
  import './chunk-IHNQWF6F.js';
8
8
  import './chunk-URWYRAIC.js';
9
9
  import './chunk-GISNHSYL.js';
@@ -1 +1 @@
1
- {"id":"2026-10-15T01:34:44.161Z+28a91ce","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
1
+ {"id":"2026-10-15T02:32:03.730Z+264fcdb","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { MIN_BUILDX_VERSION, builderName, builderSpec, buildxState, ensureBuilder, ensureFailureCount, isOutOfMemory, proxyEnvironment, trackImageBuild } from './chunk-XR56WEA5.js';
3
+ export { MIN_BUILDX_VERSION, builderName, builderSpec, buildxState, ensureBuilder, ensureFailureCount, isOutOfMemory, proxyEnvironment, trackImageBuild } from './chunk-OGMZJWWD.js';
4
4
  import './chunk-3W333NFO.js';
5
5
  import './chunk-7RQ73DLO.js';
6
- import './chunk-AEKSX4EY.js';
7
- import './chunk-7VUK5RFS.js';
6
+ import './chunk-CBCKD6DO.js';
7
+ import './chunk-QZBXLLTV.js';
8
8
  import './chunk-OW52QLK3.js';
9
9
  import './chunk-IHNQWF6F.js';
10
10
  import './chunk-URWYRAIC.js';
@@ -1,69 +1,69 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { probeCredentials } from './chunk-2CPOAPU4.js';
4
- import './chunk-KOIMUHIS.js';
3
+ import { probeCredentials } from './chunk-TFGXOHF6.js';
4
+ import './chunk-QSEPKZXR.js';
5
+ import './chunk-CQAEV3Z5.js';
5
6
  import './chunk-UF5L4BAI.js';
6
7
  import './chunk-3JVYMD4G.js';
7
- import './chunk-I2UOAV7X.js';
8
8
  import './chunk-YETTWTAY.js';
9
+ import './chunk-I2UOAV7X.js';
9
10
  import './chunk-TPKYTORP.js';
10
- import './chunk-CQAEV3Z5.js';
11
- import './chunk-4542B3RR.js';
12
- import './chunk-SFHR45FA.js';
11
+ import './chunk-WY7HFY62.js';
12
+ import './chunk-Z42JY3LQ.js';
13
13
  import './chunk-WXJXHZVB.js';
14
- import './chunk-U6RKHNC7.js';
15
- import './chunk-JD6GWYY7.js';
14
+ import './chunk-DJYOCD65.js';
15
+ import './chunk-D64E222W.js';
16
16
  import './chunk-ESVW4MJY.js';
17
- import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-IPS2JCHK.js';
17
+ import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-G3LHWUBK.js';
18
18
  import './chunk-YYYRBYWG.js';
19
19
  import './chunk-276D7BJ7.js';
20
20
  import './chunk-TBT347UY.js';
21
- import './chunk-ZCXP35T3.js';
21
+ import './chunk-2TT7DEMZ.js';
22
+ import './chunk-C2XZBNHY.js';
23
+ import './chunk-BOG4ENP7.js';
22
24
  import './chunk-4AVDD7VX.js';
23
25
  import './chunk-OBCFK4QD.js';
24
26
  import { parseRunnerEnv } from './chunk-6MZSX4M7.js';
25
- import './chunk-FVDVC2GF.js';
26
- import './chunk-WKSBSEWT.js';
27
- import './chunk-3AZYLAJC.js';
27
+ import './chunk-QILR6TZP.js';
28
+ import './chunk-XACXXKQ5.js';
29
+ import './chunk-JBJTC3UU.js';
28
30
  import './chunk-OGFGZQA3.js';
29
- import './chunk-XR56WEA5.js';
31
+ import './chunk-OGMZJWWD.js';
30
32
  import './chunk-3W333NFO.js';
31
33
  import './chunk-NYTZ7HVN.js';
32
34
  import './chunk-2Q3PZ42G.js';
33
- import './chunk-IMCVQF5F.js';
34
- import './chunk-FQE5RDHI.js';
35
- import './chunk-B42BIYC6.js';
36
- import './chunk-EMUNEAQK.js';
37
- import './chunk-G3IJ3N6F.js';
38
- import './chunk-EAQSOE62.js';
39
- import './chunk-F35VMF5M.js';
35
+ import './chunk-KGKFEONR.js';
36
+ import './chunk-C64D7HR3.js';
37
+ import './chunk-ZLZ3XVPI.js';
38
+ import './chunk-GXV73IIS.js';
39
+ import './chunk-BUP5N3X6.js';
40
+ import './chunk-XSPA5ODY.js';
41
+ import './chunk-GOSFARMS.js';
40
42
  import { loadRunnerConfig, RunnerConfigError, checkHooks } from './chunk-V5CG75NX.js';
41
43
  import './chunk-UXYLWVTQ.js';
42
44
  import './chunk-7RQ73DLO.js';
43
- import './chunk-XACXXKQ5.js';
44
- import './chunk-JBJTC3UU.js';
45
- import './chunk-SNVXHNU7.js';
46
- import './chunk-USWVXQIH.js';
45
+ import './chunk-XGPC3IOR.js';
46
+ import './chunk-MQ743JX3.js';
47
47
  import './chunk-QS43O4DR.js';
48
- import './chunk-HWZCE745.js';
48
+ import './chunk-XOEV4FVK.js';
49
49
  import './chunk-ZJSNLVCE.js';
50
50
  import './chunk-DYEFPYME.js';
51
51
  import './chunk-BKO6JEZI.js';
52
- import './chunk-ZNPE7FW5.js';
52
+ import './chunk-VPEGE3QZ.js';
53
53
  import './chunk-HCVLP7XA.js';
54
54
  import './chunk-BJ3KTMDH.js';
55
- import './chunk-AEKSX4EY.js';
56
- import './chunk-EABW6AJQ.js';
57
- import './chunk-5OCIHFGE.js';
55
+ import './chunk-CBCKD6DO.js';
58
56
  import './chunk-ANPNT6PM.js';
57
+ import './chunk-EABW6AJQ.js';
58
+ import './chunk-HBISTTG3.js';
59
59
  import './chunk-T2Q7ISPE.js';
60
60
  import './chunk-WZBHBH3J.js';
61
61
  import './chunk-CRB3POP4.js';
62
62
  import './chunk-GNPTU4BM.js';
63
63
  import './chunk-YQR6E6OV.js';
64
64
  import './chunk-TUSYOL2O.js';
65
- import './chunk-WFSUUUAN.js';
66
- import './chunk-7VUK5RFS.js';
65
+ import './chunk-RKOTJQVG.js';
66
+ import './chunk-QZBXLLTV.js';
67
67
  import './chunk-VNVZDWO3.js';
68
68
  import './chunk-RA3O54FC.js';
69
69
  import './chunk-OW52QLK3.js';
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
+ import { detectMachine, supportsContainerBuilds, reachDockerStep, describeMachineDocker, supportsMicroVmBuilds } from './chunk-C2XZBNHY.js';
4
+ import { MIN_ENGINE_MAJOR } from './chunk-BOG4ENP7.js';
3
5
  import { hasStoredCredential, AGENT_COMMANDS, storeClaudeCredential, credentialFromStdin, isAgentName } from './chunk-4AVDD7VX.js';
4
- import { detectMachine, supportsContainerBuilds, reachDockerStep, describeMachineDocker, supportsMicroVmBuilds } from './chunk-FVDVC2GF.js';
5
- import { MIN_ENGINE_MAJOR } from './chunk-WKSBSEWT.js';
6
6
  import { runnerCredentialProblem } from './chunk-V5CG75NX.js';
7
7
  import { runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-IHNQWF6F.js';
8
8
  import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { autoConnect, detectActiveSession } from './chunk-B42BIYC6.js';
3
+ import { autoConnect, detectActiveSession } from './chunk-ZLZ3XVPI.js';
4
4
  import { defaultFetch, unauthorizedMessage, resolveGatewayCredentials } from './chunk-QS43O4DR.js';
5
- import { resolveRepoIdentity } from './chunk-AEKSX4EY.js';
5
+ import { resolveRepoIdentity } from './chunk-CBCKD6DO.js';
6
6
  import { C } from './chunk-ANPNT6PM.js';
7
7
  import { parseWorkItemEnv } from './chunk-T2Q7ISPE.js';
8
8
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
@@ -1,21 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { readDefaultBranchHead, cloneRepository, buildRepositoryImage } from './chunk-3AZYLAJC.js';
3
+ import { readDefaultBranchHead, cloneRepository, buildRepositoryImage } from './chunk-QILR6TZP.js';
4
+ import { startTimeOf, isSameProcess } from './chunk-JBJTC3UU.js';
4
5
  import { currentCliBuild } from './chunk-OGFGZQA3.js';
5
- import { createDockerHost, builderSpec, runnerLabelValue, RUNNER_LABEL, BUILD_LABEL, prepareRunArgs, containerRunArgs, HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, containerExecArgs, childEnvironment, JUDGE_DIR, JUDGE_REPORT, MAX_REPORT_BYTES, spawnRun } from './chunk-XR56WEA5.js';
6
+ import { createDockerHost, builderSpec, runnerLabelValue, RUNNER_LABEL, BUILD_LABEL, prepareRunArgs, containerRunArgs, HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, containerExecArgs, childEnvironment, JUDGE_DIR, JUDGE_REPORT, MAX_REPORT_BYTES, spawnRun } from './chunk-OGMZJWWD.js';
6
7
  import { RecipeError, CLAUDE_CODE_VERSION, firecrackerArch, MICROVM_ARCHES, DEFAULT_BASE_IMAGE, GUEST_HELPER_SHA256, GUEST_ASSETS_BASE_URL, GUEST_KERNEL_SHA256, FIRECRACKER_BINARY_SHA256, FIRECRACKER_SHA256, FIRECRACKER_VERSION, GUEST_ASSETS_VERSION } from './chunk-3W333NFO.js';
7
8
  import { execCapture } from './chunk-NYTZ7HVN.js';
8
9
  import { GUEST_CID } from './chunk-2Q3PZ42G.js';
9
- import { describeCallFailure, controlPlaneTokenFailure, refusalCode, resolveGoverningSource, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, shimScript } from './chunk-IMCVQF5F.js';
10
- import { WorkCommandError } from './chunk-FQE5RDHI.js';
10
+ import { describeCallFailure, controlPlaneTokenFailure, refusalCode, resolveGoverningSource, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, shimScript } from './chunk-KGKFEONR.js';
11
+ import { WorkCommandError } from './chunk-C64D7HR3.js';
11
12
  import { hostAllowed } from './chunk-UXYLWVTQ.js';
12
13
  import { parseDuKilobytes } from './chunk-7RQ73DLO.js';
13
- import { startTimeOf, isSameProcess } from './chunk-JBJTC3UU.js';
14
- import { sharedSkillNames, skillConflictMessage } from './chunk-ZNPE7FW5.js';
14
+ import { sharedSkillNames, skillConflictMessage } from './chunk-VPEGE3QZ.js';
15
15
  import { versionAtLeast, MINIMUM_CLAUDE_VERSION } from './chunk-HCVLP7XA.js';
16
- import { setCustomScrubbers, setLocalIdentity, setRepoRoot, parseTranscript, scrubDeep, scrubText } from './chunk-AEKSX4EY.js';
17
- import { orderSessions, extractFacts, sessionsToTimeline } from './chunk-WFSUUUAN.js';
18
- import { downconvertSession } from './chunk-7VUK5RFS.js';
16
+ import { setCustomScrubbers, setLocalIdentity, setRepoRoot, parseTranscript, scrubDeep, scrubText } from './chunk-CBCKD6DO.js';
17
+ import { orderSessions, extractFacts, sessionsToTimeline } from './chunk-RKOTJQVG.js';
18
+ import { downconvertSession } from './chunk-QZBXLLTV.js';
19
19
  import { rootfsPathFor, diskTemplatesDir, RUNNER_FILE_MODE, deliveryDir, ghConfigDir, runnerDirOfBuild, spoolDir, mirrorDir, buildDir, RUNNER_DIR_MODE, SHIM_DIR, vmAssetsDir } from './chunk-IHNQWF6F.js';
20
20
  import { repositoriesOf, primaryOf, RELAY_PORT, repositoryPath, CHECKOUT_DIR, lifecycleWorkdir, claudeCredential, buildEnvironment, startBuildServices, checkEnvironment, AGENT_CREDENTIAL_MISSING, checkoutPath, JOB_MOUNT } from './chunk-URWYRAIC.js';
21
21
  import { RELAY_USER, RELAY_ID, UNKNOWN_TRANSPORT_REASON, MAX_MALFORMED_SESSIONS, MALFORMED_REASON, MAX_OPEN_STREAMS, STREAM_WINDOW, SESSION_WINDOW, targetOfPath } from './chunk-GISNHSYL.js';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { ArtifactTombstoneRecordSchema, ArtifactSpoolRecordSchema } from './chunk-7VUK5RFS.js';
3
+ import { ArtifactTombstoneRecordSchema, ArtifactSpoolRecordSchema } from './chunk-QZBXLLTV.js';
4
4
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
5
5
  import { mkdirSync, appendFileSync, writeFileSync, renameSync, unlinkSync, existsSync, readdirSync, readFileSync, statSync } from 'fs';
6
6
  import { join, dirname } from 'path';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { MIN_ENGINE_MAJOR } from './chunk-WKSBSEWT.js';
3
+ import { MIN_ENGINE_MAJOR } from './chunk-BOG4ENP7.js';
4
4
  import { firecrackerArch, MICROVM_ARCHES, guestAssetsPinned } from './chunk-3W333NFO.js';
5
5
  import { spawnSync } from 'child_process';
6
6
  import { existsSync, accessSync, constants, statSync, readFileSync } from 'fs';
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { detectActiveSession, autoConnect } from './chunk-B42BIYC6.js';
4
- import { workPageUrl } from './chunk-EMUNEAQK.js';
5
- import { sanitizeTerminal } from './chunk-G3IJ3N6F.js';
3
+ import { detectActiveSession, autoConnect } from './chunk-ZLZ3XVPI.js';
4
+ import { workPageUrl } from './chunk-GXV73IIS.js';
5
+ import { sanitizeTerminal } from './chunk-BUP5N3X6.js';
6
6
  import { resolveGatewayCredentials, unauthorizedMessage, defaultFetch } from './chunk-QS43O4DR.js';
7
7
  import { readRepoConnection } from './chunk-BJ3KTMDH.js';
8
- import { resolveRepoIdentity } from './chunk-AEKSX4EY.js';
8
+ import { resolveRepoIdentity } from './chunk-CBCKD6DO.js';
9
9
  import { C } from './chunk-ANPNT6PM.js';
10
10
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
11
11
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
@@ -427,7 +427,7 @@ async function runWorkLinkSession(opts) {
427
427
  return await linkSession(opts);
428
428
  } catch (err) {
429
429
  if (opts.logFailures) {
430
- const { logHookError } = await import('./hook-fast-QUGEI2IT.js');
430
+ const { logHookError } = await import('./hook-fast-27SHD72I.js');
431
431
  const reason = err instanceof Error ? err.message : String(err);
432
432
  logHookError(opts.home ?? homeFromEnv(opts.env ?? process.env), new Error(`work link-session #${opts.number} failed: ${reason}`));
433
433
  }
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { EVENT_TYPES, isHumanUserTurn, INPUT_BAND_BOUNDARIES, parseAgentSession, SCHEMA_VERSION, SPEED_MAX_LENGTH, inputBandOf, BUCKET_MODEL_MAX_LENGTH } from './chunk-7VUK5RFS.js';
3
+ import { EVENT_TYPES, isHumanUserTurn, INPUT_BAND_BOUNDARIES, parseAgentSession, SCHEMA_VERSION, SPEED_MAX_LENGTH, inputBandOf, BUCKET_MODEL_MAX_LENGTH } from './chunk-QZBXLLTV.js';
4
4
  import { createHash } from 'crypto';
5
5
  import { readFileSync, readdirSync, statSync, mkdirSync, copyFileSync, renameSync, unlinkSync, writeFileSync, stat as stat$1, unwatchFile, watchFile, watch as watch$1 } from 'fs';
6
6
  import { type, homedir } from 'os';
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { launchRefusalForSession } from './chunk-ESVW4MJY.js';
4
- import { autoConnect, detectActiveSession } from './chunk-B42BIYC6.js';
5
- import { acquireSpoolLockAt } from './chunk-G3IJ3N6F.js';
4
+ import { autoConnect, detectActiveSession } from './chunk-ZLZ3XVPI.js';
5
+ import { acquireSpoolLockAt } from './chunk-BUP5N3X6.js';
6
6
  import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-QS43O4DR.js';
7
- import { resolveRepoIdentity } from './chunk-AEKSX4EY.js';
7
+ import { resolveRepoIdentity } from './chunk-CBCKD6DO.js';
8
8
  import { C } from './chunk-ANPNT6PM.js';
9
9
  import { launchedItemForSession } from './chunk-T2Q7ISPE.js';
10
10
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
11
- import { StepNameSchema, StepBodySchema } from './chunk-7VUK5RFS.js';
11
+ import { StepNameSchema, StepBodySchema } from './chunk-QZBXLLTV.js';
12
12
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
13
13
  import { randomUUID } from 'crypto';
14
14
  import { readFileSync, existsSync, mkdirSync, writeFileSync, renameSync, appendFileSync } from 'fs';
@@ -1,22 +1,22 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { uploadSpooledSteps } from './chunk-JD6GWYY7.js';
3
+ import { uploadSpooledSteps } from './chunk-D64E222W.js';
4
4
  import { LaunchFilter } from './chunk-ESVW4MJY.js';
5
5
  import { RepoFilter } from './chunk-TBT347UY.js';
6
- import { migrateLegacyArtifactSidecars, planArtifactUpload, artifactsStatePath, sanitizeTerminal, acquireArtifactSpoolLock, artifactBlobsDir, resolveArtifactTurnIndex, isArtifactTombstoned, ARTIFACT_RETRY_MAX_AGE_MS, writeArtifactSpoolState, reclaimUnneededArtifactBlobs, neededArtifactShas } from './chunk-G3IJ3N6F.js';
6
+ import { migrateLegacyArtifactSidecars, planArtifactUpload, artifactsStatePath, sanitizeTerminal, acquireArtifactSpoolLock, artifactBlobsDir, resolveArtifactTurnIndex, isArtifactTombstoned, ARTIFACT_RETRY_MAX_AGE_MS, writeArtifactSpoolState, reclaimUnneededArtifactBlobs, neededArtifactShas } from './chunk-BUP5N3X6.js';
7
7
  import { cliFetch, resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-QS43O4DR.js';
8
- import { writeSyncStatus, spoolDir } from './chunk-HWZCE745.js';
8
+ import { writeSyncStatus, spoolDir } from './chunk-XOEV4FVK.js';
9
9
  import { readLatestProvenanceForSession, readContextProvenance } from './chunk-ZJSNLVCE.js';
10
10
  import { hookExecSpoolPath } from './chunk-DYEFPYME.js';
11
11
  import { applyReportedCost } from './chunk-BKO6JEZI.js';
12
12
  import { readRepoConnection, findGitDirs } from './chunk-BJ3KTMDH.js';
13
- import { setCustomScrubbers, setLocalIdentity, tailTranscript, enrichSessionRepo, scanAll, setRepoRoot, resolveRepoIdentity, sessionIdFromPath, scrubDeep, SOURCE_ADAPTERS } from './chunk-AEKSX4EY.js';
14
- import { readCloudConfig, cloudConfigPath, writeCloudConfig } from './chunk-EABW6AJQ.js';
13
+ import { setCustomScrubbers, setLocalIdentity, tailTranscript, enrichSessionRepo, scanAll, setRepoRoot, resolveRepoIdentity, sessionIdFromPath, scrubDeep, SOURCE_ADAPTERS } from './chunk-CBCKD6DO.js';
15
14
  import { C } from './chunk-ANPNT6PM.js';
15
+ import { readCloudConfig, cloudConfigPath, writeCloudConfig } from './chunk-EABW6AJQ.js';
16
16
  import { readLaunchSpoolState, launchStatusIsDecisive, launchedItemsBySession, launchesPath } from './chunk-T2Q7ISPE.js';
17
17
  import { cliInvocation } from './chunk-CRB3POP4.js';
18
18
  import { removeJournalHooks } from './chunk-TUSYOL2O.js';
19
- import { CAPTURE_TIERS, inferArtifactKind, bannedPathsForTier, downconvertSession, isHumanUserTurn, turnCountBound, EVENT_TYPES } from './chunk-7VUK5RFS.js';
19
+ import { CAPTURE_TIERS, inferArtifactKind, bannedPathsForTier, downconvertSession, isHumanUserTurn, turnCountBound, EVENT_TYPES } from './chunk-QZBXLLTV.js';
20
20
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
21
21
  import { signerFor, signRunnerRequest } from './chunk-OW52QLK3.js';
22
22
  import { dirname, basename, join } from 'path';
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { checkStarterFiles, contextIsGoverned, checkBuildSkill } from './chunk-VSUXCMMH.js';
4
- import { resolveCredentials, getJson, WorkCommandError } from './chunk-FQE5RDHI.js';
5
- import { isLinkedRepository } from './chunk-EMUNEAQK.js';
6
- import { sanitizeTerminal } from './chunk-G3IJ3N6F.js';
7
- import { checkFormerSkillNames } from './chunk-USWVXQIH.js';
3
+ import { checkStarterFiles, contextIsGoverned, checkBuildSkill } from './chunk-XFGL53GU.js';
4
+ import { resolveCredentials, getJson, WorkCommandError } from './chunk-C64D7HR3.js';
5
+ import { isLinkedRepository } from './chunk-GXV73IIS.js';
6
+ import { sanitizeTerminal } from './chunk-BUP5N3X6.js';
7
+ import { checkFormerSkillNames } from './chunk-MQ743JX3.js';
8
8
  import { resolveGatewayCredentials, defaultFetch } from './chunk-QS43O4DR.js';
9
- import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-HWZCE745.js';
9
+ import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-XOEV4FVK.js';
10
10
  import { readStatuslineState, STATE_FRESH_MS } from './chunk-DXDF43YG.js';
11
11
  import { hookCommandEscapesControlPlane, CONTROL_PLANE_DIR_VARIABLE } from './chunk-HCVLP7XA.js';
12
12
  import { findGitDirs } from './chunk-BJ3KTMDH.js';
13
- import { resolveRepoIdentity, compareVersions, SUPPORTED_VERSIONS } from './chunk-AEKSX4EY.js';
13
+ import { resolveRepoIdentity, compareVersions, SUPPORTED_VERSIONS } from './chunk-CBCKD6DO.js';
14
14
  import { C } from './chunk-ANPNT6PM.js';
15
15
  import { cliInvocation } from './chunk-CRB3POP4.js';
16
16
  import { readSettings, settingsPath, isOurStatuslineSlot, statuslineWrappedOriginal, REGISTERED_EVENTS, isOurHookCommand, ourCommandBins, cliBinResolvable, ourDirectScriptBins, wrappedOriginalCommand } from './chunk-GNPTU4BM.js';
@@ -1186,7 +1186,7 @@ async function gatherDoctorChecks() {
1186
1186
  const { runnerVmCheck } = await import('./doctor-53F2PYY7.js');
1187
1187
  checks.push(runnerVmCheck(configPath, { lima: realLima(), home: homeFromEnv(), instance: runnerVm.instance }));
1188
1188
  } else if (hasRunnerBlock(configPath)) {
1189
- const { runnerHostChecks } = await import('./doctor-BRN4BGMA.js');
1189
+ const { runnerHostChecks } = await import('./doctor-4H77CEB7.js');
1190
1190
  const hooks = (() => {
1191
1191
  try {
1192
1192
  return loadRunnerConfig(configPath).hooks;
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { isPlaceholderCommand } from './chunk-ZCXP35T3.js';
4
- import { describeCallFailure } from './chunk-IMCVQF5F.js';
5
- import { WorkCommandError, getJson } from './chunk-FQE5RDHI.js';
6
- import { sanitizeTerminal } from './chunk-G3IJ3N6F.js';
3
+ import { isPlaceholderCommand } from './chunk-2TT7DEMZ.js';
4
+ import { describeCallFailure } from './chunk-KGKFEONR.js';
5
+ import { WorkCommandError, getJson } from './chunk-C64D7HR3.js';
6
+ import { sanitizeTerminal } from './chunk-BUP5N3X6.js';
7
7
  import { builtinKind } from './chunk-V5CG75NX.js';
8
8
  import { signerFor } from './chunk-OW52QLK3.js';
9
9
  import { CLAUDE_CREDENTIAL_VARIABLES, claudeCredential } from './chunk-URWYRAIC.js';
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { sanitizeTerminal } from './chunk-G3IJ3N6F.js';
4
- import { DEFAULT_DASHBOARD } from './chunk-EAQSOE62.js';
3
+ import { sanitizeTerminal } from './chunk-BUP5N3X6.js';
4
+ import { DEFAULT_DASHBOARD } from './chunk-XSPA5ODY.js';
5
5
  import { cliFetch, resolveGatewayCredentials } from './chunk-QS43O4DR.js';
6
6
  import { writeRepoConnection, findGitDirs, readRepoConnection } from './chunk-BJ3KTMDH.js';
7
- import { remoteLookupFailed } from './chunk-AEKSX4EY.js';
7
+ import { remoteLookupFailed } from './chunk-CBCKD6DO.js';
8
8
  import { readCloudConfig } from './chunk-EABW6AJQ.js';
9
9
  import { cliInvocation } from './chunk-CRB3POP4.js';
10
10
  import { execFileSync } from 'child_process';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { splitRawFile } from './chunk-WFSUUUAN.js';
3
+ import { splitRawFile } from './chunk-RKOTJQVG.js';
4
4
  import { resolvePackageVersion } from './chunk-RA3O54FC.js';
5
5
  import { existsSync, readFileSync, mkdirSync, writeFileSync, readdirSync } from 'fs';
6
6
  import { join, dirname } from 'path';
@@ -12,17 +12,26 @@ var MAINTAINED_SKILLS = ["outerlayer-evidence", "outerlayer-amend", "outerlayer-
12
12
  function templateClassLine(version) {
13
13
  return `<!-- yours to edit. Copied once from the default template by outerlayer init ${version}; never overwritten. -->`;
14
14
  }
15
- function maintainedClassLine(version) {
16
- return `<!-- maintained by OuterLayer ${version}. Edits are overwritten on the next outerlayer context emit. -->`;
15
+ function maintainedClassLine(version, base) {
16
+ const command = base === AGENTS_SKILLS_BASE ? "outerlayer init --update" : "outerlayer context emit";
17
+ return `<!-- maintained by OuterLayer ${version}. Edits are overwritten on the next ${command}. -->`;
18
+ }
19
+ var OUTERLAYER_SKILLS_BASE = ".outerlayer/skills";
20
+ var AGENTS_SKILLS_BASE = ".agents/skills";
21
+ function rewriteSkillPaths(content, base) {
22
+ return base === OUTERLAYER_SKILLS_BASE ? content : content.split(`${OUTERLAYER_SKILLS_BASE}/`).join(`${base}/`);
23
+ }
24
+ function restoreSkillPaths(content, base) {
25
+ return base === OUTERLAYER_SKILLS_BASE ? content : content.split(`${base}/`).join(`${OUTERLAYER_SKILLS_BASE}/`);
17
26
  }
18
27
  function resolvePackRoot(entryPath = fileURLToPath(import.meta.url)) {
19
28
  return join(dirname(dirname(entryPath)), "skill-pack");
20
29
  }
21
- function skillDir(skill) {
22
- return `.outerlayer/skills/${skill}`;
30
+ function skillDir(skill, base = OUTERLAYER_SKILLS_BASE) {
31
+ return `${base}/${skill}`;
23
32
  }
24
- function renderSkillFile(skillClass, content, version) {
25
- const line = skillClass === "maintained" ? maintainedClassLine(version) : templateClassLine(version);
33
+ function renderSkillFile(skillClass, content, version, base) {
34
+ const line = skillClass === "maintained" ? maintainedClassLine(version, base) : templateClassLine(version);
26
35
  const { frontmatterInner, body } = splitRawFile(content);
27
36
  if (frontmatterInner === null) return `${line}
28
37
  ${content}`;
@@ -42,7 +51,7 @@ function filesUnder(dir, base = dir) {
42
51
  function orderSkillFiles(relPaths) {
43
52
  return [...relPaths.filter((p) => p === "SKILL.md"), ...relPaths.filter((p) => p !== "SKILL.md")];
44
53
  }
45
- function loadClass(packRoot, skillClass, names, version) {
54
+ function loadClass(packRoot, skillClass, names, version, base) {
46
55
  const files = [];
47
56
  for (const skill of names) {
48
57
  const dir = join(packRoot, skillClass, skill);
@@ -52,18 +61,18 @@ function loadClass(packRoot, skillClass, names, version) {
52
61
  files.push({
53
62
  skill,
54
63
  skillClass,
55
- path: `${skillDir(skill)}/${rel}`,
56
- content: rel === "SKILL.md" ? renderSkillFile(skillClass, raw, version) : raw
64
+ path: `${skillDir(skill, base)}/${rel}`,
65
+ content: rewriteSkillPaths(rel === "SKILL.md" ? renderSkillFile(skillClass, raw, version, base) : raw, base)
57
66
  });
58
67
  }
59
68
  }
60
69
  return files;
61
70
  }
62
- function loadTemplateFiles(packRoot = resolvePackRoot(), version = resolvePackageVersion()) {
63
- return loadClass(packRoot, "template", TEMPLATE_SKILLS, version);
71
+ function loadTemplateFiles(packRoot = resolvePackRoot(), version = resolvePackageVersion(), base = OUTERLAYER_SKILLS_BASE) {
72
+ return loadClass(packRoot, "template", TEMPLATE_SKILLS, version, base);
64
73
  }
65
- function loadMaintainedFiles(packRoot = resolvePackRoot(), version = resolvePackageVersion()) {
66
- return loadClass(packRoot, "maintained", MAINTAINED_SKILLS, version);
74
+ function loadMaintainedFiles(packRoot = resolvePackRoot(), version = resolvePackageVersion(), base = OUTERLAYER_SKILLS_BASE) {
75
+ return loadClass(packRoot, "maintained", MAINTAINED_SKILLS, version, base);
67
76
  }
68
77
  function writeMaintainedFiles(repoRoot, files) {
69
78
  const created = [];
@@ -78,15 +87,15 @@ function writeMaintainedFiles(repoRoot, files) {
78
87
  }
79
88
  return { created, rewritten };
80
89
  }
81
- function maintainedFilesForExistingSkills(repoRoot, files) {
90
+ function maintainedFilesForExistingSkills(repoRoot, files, base = OUTERLAYER_SKILLS_BASE) {
82
91
  return files.filter(
83
- (file) => existsSync(join(repoRoot, skillDir(file.skill))) || formerNameExists(repoRoot, file.skill) || requiredByBuild(repoRoot, file.skill)
92
+ (file) => existsSync(join(repoRoot, skillDir(file.skill, base))) || formerNameExists(repoRoot, file.skill, base) || requiredByBuild(repoRoot, file.skill, base)
84
93
  );
85
94
  }
86
95
  function namesCore(text) {
87
96
  return text.includes("outerlayer-build");
88
97
  }
89
- function requiredByBuild(repoRoot, skill) {
98
+ function requiredByBuild(repoRoot, skill, base) {
90
99
  if (skill !== "outerlayer-build") return false;
91
100
  const named = (file) => {
92
101
  try {
@@ -95,7 +104,7 @@ function requiredByBuild(repoRoot, skill) {
95
104
  return false;
96
105
  }
97
106
  };
98
- if (named(join(repoRoot, skillDir("build"), "SKILL.md"))) return true;
107
+ if (named(join(repoRoot, skillDir("build", base), "SKILL.md"))) return true;
99
108
  const dir = join(repoRoot, ".outerlayer", "validators");
100
109
  try {
101
110
  return readdirSync(dir).some((name) => name.endsWith(".yaml") && named(join(dir, name)));
@@ -110,15 +119,15 @@ var FORMER_MAINTAINED_NAMES = {
110
119
  outerlayer: "outerlayer-cli"
111
120
  };
112
121
  var MAINTAINED_LINE = /^<!-- maintained by OuterLayer \S+?\. /m;
113
- function isMaintainedCopy(repoRoot, skill) {
122
+ function isMaintainedCopy(repoRoot, skill, base = OUTERLAYER_SKILLS_BASE) {
114
123
  try {
115
- return MAINTAINED_LINE.test(readFileSync(join(repoRoot, skillDir(skill), "SKILL.md"), "utf8"));
124
+ return MAINTAINED_LINE.test(readFileSync(join(repoRoot, skillDir(skill, base), "SKILL.md"), "utf8"));
116
125
  } catch {
117
126
  return false;
118
127
  }
119
128
  }
120
- function formerNameExists(repoRoot, skill) {
121
- return Object.entries(FORMER_MAINTAINED_NAMES).some(([former, current]) => current === skill && isMaintainedCopy(repoRoot, former));
129
+ function formerNameExists(repoRoot, skill, base) {
130
+ return Object.entries(FORMER_MAINTAINED_NAMES).some(([former, current]) => current === skill && isMaintainedCopy(repoRoot, former, base));
122
131
  }
123
132
 
124
- export { FORMER_MAINTAINED_NAMES, MAINTAINED_SKILLS, TEMPLATE_SKILLS, isMaintainedCopy, loadMaintainedFiles, loadTemplateFiles, maintainedFilesForExistingSkills, namesCore, resolvePackRoot, skillDir, writeMaintainedFiles };
133
+ export { AGENTS_SKILLS_BASE, FORMER_MAINTAINED_NAMES, MAINTAINED_SKILLS, OUTERLAYER_SKILLS_BASE, TEMPLATE_SKILLS, isMaintainedCopy, loadMaintainedFiles, loadTemplateFiles, maintainedFilesForExistingSkills, namesCore, resolvePackRoot, restoreSkillPaths, rewriteSkillPaths, skillDir, writeMaintainedFiles };