@outerlayer/cli 0.25.2 → 0.26.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +0 -1
  3. package/dist/{agent-setup-YHFZB2BC.js → agent-setup-PZYQWN4H.js} +3 -3
  4. package/dist/{build-ONH22PN5.js → build-JK2DLT6X.js} +2 -2
  5. package/dist/build-info.json +1 -1
  6. package/dist/{builder-WPULEVMY.js → builder-TMA25KRR.js} +2 -2
  7. package/dist/{check-SSEVZJN5.js → check-3CBJVXZD.js} +19 -19
  8. package/dist/{chunk-APBTVIM4.js → chunk-4R24DSL2.js} +4 -4
  9. package/dist/{chunk-H3AEZIYB.js → chunk-6M4LNO22.js} +1 -1
  10. package/dist/{chunk-F4267APM.js → chunk-7I6GZSN3.js} +1 -1
  11. package/dist/{chunk-PCADYUQT.js → chunk-7NKVMAP6.js} +2 -2
  12. package/dist/{chunk-3RBQSPW5.js → chunk-AINUN2TT.js} +1 -1
  13. package/dist/{chunk-Z453MOUL.js → chunk-BMWIUSTZ.js} +3 -3
  14. package/dist/{chunk-WVM6PM2N.js → chunk-D7V33CAH.js} +3 -3
  15. package/dist/{chunk-P7UQZFNY.js → chunk-EORWWFPA.js} +2 -2
  16. package/dist/{chunk-CP24ZXXR.js → chunk-GAWZ7ATV.js} +12 -9
  17. package/dist/{chunk-WXKAHUGA.js → chunk-GQOT37HL.js} +5 -5
  18. package/dist/{chunk-FQCLEH34.js → chunk-HXFRJKMU.js} +2 -2
  19. package/dist/{chunk-XBCJI6SV.js → chunk-IIFMFX6J.js} +2 -2
  20. package/dist/{chunk-Z6SWQV77.js → chunk-ILL2CWOU.js} +16 -9
  21. package/dist/{chunk-QBENN6GA.js → chunk-JUTN2HUP.js} +2 -2
  22. package/dist/{chunk-ITP76BST.js → chunk-PNHNKMA3.js} +3 -3
  23. package/dist/{chunk-C3AMVSMS.js → chunk-QIIMZC7W.js} +1 -1
  24. package/dist/{chunk-GJZEUQ6D.js → chunk-QRZLUUNN.js} +13 -0
  25. package/dist/{chunk-WMEADVIX.js → chunk-TBJ7KO2A.js} +8 -8
  26. package/dist/{chunk-G2T4HCGT.js → chunk-TEVO3RUV.js} +1 -1
  27. package/dist/{chunk-CLUUAX6O.js → chunk-TPAF24PK.js} +2 -2
  28. package/dist/{chunk-D4UDE2AP.js → chunk-W3NVHOCS.js} +1 -1
  29. package/dist/{chunk-DZUANBKP.js → chunk-XPKI5OMT.js} +4 -4
  30. package/dist/{claude-launcher-FXFXYW2E.js → claude-launcher-O2U6P6ZD.js} +1 -1
  31. package/dist/{cli-ZBZFCRTK.js → cli-7HVTFJZO.js} +64 -113
  32. package/dist/{command-A2XBWQGB.js → command-2Q5UDZUO.js} +11 -11
  33. package/dist/{connect-cmd-HAFFAVEO.js → connect-cmd-2JHSLBXK.js} +2 -2
  34. package/dist/{container-start-L6LCWH6Z.js → container-start-SCCR2PRD.js} +12 -12
  35. package/dist/{control-plane-launch-FRK5IZXC.js → control-plane-launch-654RV5PO.js} +2 -2
  36. package/dist/{docker-FATVQG5M.js → docker-4X2A5HDY.js} +2 -2
  37. package/dist/{doctor-EI22PDR5.js → doctor-3QA5Y5HG.js} +16 -13
  38. package/dist/{emit-artifact-cmd-Y2GMWCSD.js → emit-artifact-cmd-SFUSDWZM.js} +6 -6
  39. package/dist/{emit-criteria-cmd-LI7OLHEC.js → emit-criteria-cmd-VMZIRJCQ.js} +3 -3
  40. package/dist/{emit-finding-cmd-3LU7C356.js → emit-finding-cmd-KMJNYQI7.js} +3 -3
  41. package/dist/{emit-result-cmd-NKAKRBW2.js → emit-result-cmd-NEICBIDU.js} +6 -6
  42. package/dist/{emit-step-cmd-JQ23TRF5.js → emit-step-cmd-AUHA3EXY.js} +4 -4
  43. package/dist/{governing-source-73APROH6.js → governing-source-J5DF65X5.js} +6 -6
  44. package/dist/{hook-fast-GD7F2EBL.js → hook-fast-REXH5P6R.js} +1 -1
  45. package/dist/index.js +4 -4
  46. package/dist/{init-MRREKVT5.js → init-NEUTUGEQ.js} +12 -12
  47. package/dist/{init-ZN47OUB3.js → init-UMON3HZK.js} +12 -12
  48. package/dist/{init-cmd-ZGQ6HMZD.js → init-cmd-54DMRBNO.js} +6 -6
  49. package/dist/{init-update-HTHYQOHU.js → init-update-FJDKY4SJ.js} +4 -4
  50. package/dist/{loop-JTKSTVDV.js → loop-6JKW5QR5.js} +19 -19
  51. package/dist/{machine-RCIMAKOA.js → machine-XF55O56X.js} +11 -11
  52. package/dist/{mcp-serve-cmd-QBFQN553.js → mcp-serve-cmd-U5N5DK3H.js} +1 -1
  53. package/dist/{runner-identity-C2O6Q3RR.js → runner-identity-NH6RLVMI.js} +2 -2
  54. package/dist/{runner-key-ENQLA4Q6.js → runner-key-FUNSJ564.js} +12 -12
  55. package/dist/{session-sender-535VA2CA.js → session-sender-P5GVOIUY.js} +7 -7
  56. package/dist/{spec-cmd-KERLZ6GJ.js → spec-cmd-HMFW552G.js} +4 -4
  57. package/dist/{status-OTZ3VX47.js → status-ULZVKQ7G.js} +15 -15
  58. package/dist/{sync-cmd-EIRKU5FA.js → sync-cmd-VCLCOME6.js} +6 -6
  59. package/dist/{watch-SMF5CW5T.js → watch-SVGL24OX.js} +6 -6
  60. package/dist/{work-claim-cmd-JCUBRZKN.js → work-claim-cmd-WQF5RTCT.js} +6 -6
  61. package/dist/{work-cmd-C3CFJZYD.js → work-cmd-TGSNYPSG.js} +4 -4
  62. package/dist/{work-comment-cmd-NDE3O7PN.js → work-comment-cmd-O3FVX6M4.js} +4 -4
  63. package/dist/{work-logs-cmd-KUGBBJAO.js → work-logs-cmd-2RMJFVNZ.js} +4 -4
  64. package/dist/{work-open-pr-cmd-TFIGKPRL.js → work-open-pr-cmd-5EP7BKRE.js} +5 -5
  65. package/dist/{work-pr-cmd-KKCLXRJL.js → work-pr-cmd-DKTBEFHO.js} +4 -4
  66. package/dist/{work-stop-cmd-QUEDBM4Q.js → work-stop-cmd-TNJYBLMN.js} +4 -4
  67. package/package.json +2 -2
  68. package/dist/import-capture-cmd-TCOKNVBM.js +0 -73
  69. package/dist/import-ruler-cmd-VJOHOJQ7.js +0 -173
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { runSessionSender, senderPidfile, startSessionSender } from './chunk-XBCJI6SV.js';
4
- import './chunk-ITP76BST.js';
5
- import './chunk-P7UQZFNY.js';
3
+ export { runSessionSender, senderPidfile, startSessionSender } from './chunk-IIFMFX6J.js';
4
+ import './chunk-PNHNKMA3.js';
5
+ import './chunk-EORWWFPA.js';
6
6
  import './chunk-ESVW4MJY.js';
7
7
  import './chunk-TBT347UY.js';
8
- import './chunk-FQCLEH34.js';
9
- import './chunk-G2T4HCGT.js';
8
+ import './chunk-HXFRJKMU.js';
9
+ import './chunk-TEVO3RUV.js';
10
10
  import './chunk-BUP5N3X6.js';
11
11
  import './chunk-XSPA5ODY.js';
12
12
  import './chunk-GOSFARMS.js';
13
- import './chunk-GJZEUQ6D.js';
14
- import './chunk-C3AMVSMS.js';
13
+ import './chunk-QRZLUUNN.js';
14
+ import './chunk-QIIMZC7W.js';
15
15
  import './chunk-ZJSNLVCE.js';
16
16
  import './chunk-DYEFPYME.js';
17
17
  import './chunk-BKO6JEZI.js';
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { getJson, postJson, patchJson, WorkCommandError, resolveCredentials } from './chunk-DZUANBKP.js';
4
- import { autoConnect } from './chunk-FQCLEH34.js';
5
- import './chunk-G2T4HCGT.js';
3
+ import { getJson, postJson, patchJson, WorkCommandError, resolveCredentials } from './chunk-XPKI5OMT.js';
4
+ import { autoConnect } from './chunk-HXFRJKMU.js';
5
+ import './chunk-TEVO3RUV.js';
6
6
  import './chunk-BUP5N3X6.js';
7
7
  import './chunk-XSPA5ODY.js';
8
8
  import './chunk-GOSFARMS.js';
9
- import { defaultFetch } from './chunk-GJZEUQ6D.js';
9
+ import { defaultFetch } from './chunk-QRZLUUNN.js';
10
10
  import './chunk-BJ3KTMDH.js';
11
11
  import './chunk-QE3UQAHK.js';
12
12
  import './chunk-ANPNT6PM.js';
@@ -1,40 +1,40 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { isReadable, ALREADY_RELEASED, RENEW_INTERVAL_SECONDS } from './chunk-CP24ZXXR.js';
3
+ import { isReadable, ALREADY_RELEASED, RENEW_INTERVAL_SECONDS } from './chunk-GAWZ7ATV.js';
4
4
  import { jobStateFormatOf } from './chunk-ZVB57WI6.js';
5
- import './chunk-XBCJI6SV.js';
5
+ import './chunk-IIFMFX6J.js';
6
6
  import './chunk-2N72GPS2.js';
7
7
  import './chunk-UNF7MWEL.js';
8
- import './chunk-ITP76BST.js';
9
- import './chunk-P7UQZFNY.js';
8
+ import './chunk-PNHNKMA3.js';
9
+ import './chunk-EORWWFPA.js';
10
10
  import './chunk-ESVW4MJY.js';
11
11
  import { formatBytes } from './chunk-YYYRBYWG.js';
12
12
  import './chunk-TBT347UY.js';
13
- import { LEASE_SECONDS } from './chunk-Z6SWQV77.js';
13
+ import { LEASE_SECONDS } from './chunk-ILL2CWOU.js';
14
14
  import { pullInstruction } from './chunk-665QWBNW.js';
15
15
  import './chunk-TQMI335S.js';
16
- import './chunk-3RBQSPW5.js';
16
+ import './chunk-AINUN2TT.js';
17
17
  import './chunk-PYSKSROG.js';
18
18
  import './chunk-JBJTC3UU.js';
19
19
  import './chunk-OGFGZQA3.js';
20
- import './chunk-F4267APM.js';
21
- import './chunk-APBTVIM4.js';
20
+ import './chunk-7I6GZSN3.js';
21
+ import './chunk-4R24DSL2.js';
22
22
  import './chunk-HPOEVC2V.js';
23
23
  import './chunk-XGJUNNXL.js';
24
- import { formatDuration, formatClock, relativeToRunner } from './chunk-WVM6PM2N.js';
25
- import './chunk-DZUANBKP.js';
26
- import './chunk-FQCLEH34.js';
27
- import './chunk-G2T4HCGT.js';
24
+ import { formatDuration, formatClock, relativeToRunner } from './chunk-D7V33CAH.js';
25
+ import './chunk-XPKI5OMT.js';
26
+ import './chunk-HXFRJKMU.js';
27
+ import './chunk-TEVO3RUV.js';
28
28
  import './chunk-BUP5N3X6.js';
29
29
  import './chunk-XSPA5ODY.js';
30
30
  import './chunk-GOSFARMS.js';
31
31
  import './chunk-JWRX5ZTT.js';
32
32
  import './chunk-UXYLWVTQ.js';
33
33
  import './chunk-7RQ73DLO.js';
34
- import './chunk-D4UDE2AP.js';
34
+ import './chunk-W3NVHOCS.js';
35
35
  import './chunk-MQ743JX3.js';
36
- import './chunk-GJZEUQ6D.js';
37
- import './chunk-C3AMVSMS.js';
36
+ import './chunk-QRZLUUNN.js';
37
+ import './chunk-QIIMZC7W.js';
38
38
  import './chunk-ZJSNLVCE.js';
39
39
  import './chunk-DYEFPYME.js';
40
40
  import './chunk-BKO6JEZI.js';
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { CHUNK_PART_TARGET_BYTES, RETRYABLE_STATUSES, SyncConfigError, SyncTransportError, detectCi, isLoopbackUrl, resolveTier, runSync } from './chunk-ITP76BST.js';
4
- import './chunk-P7UQZFNY.js';
3
+ export { CHUNK_PART_TARGET_BYTES, RETRYABLE_STATUSES, SyncConfigError, SyncTransportError, detectCi, isLoopbackUrl, resolveTier, runSync } from './chunk-PNHNKMA3.js';
4
+ import './chunk-EORWWFPA.js';
5
5
  import './chunk-ESVW4MJY.js';
6
6
  import './chunk-TBT347UY.js';
7
- import './chunk-FQCLEH34.js';
8
- import './chunk-G2T4HCGT.js';
7
+ import './chunk-HXFRJKMU.js';
8
+ import './chunk-TEVO3RUV.js';
9
9
  import './chunk-BUP5N3X6.js';
10
10
  import './chunk-XSPA5ODY.js';
11
11
  import './chunk-GOSFARMS.js';
12
- import './chunk-GJZEUQ6D.js';
13
- import './chunk-C3AMVSMS.js';
12
+ import './chunk-QRZLUUNN.js';
13
+ import './chunk-QIIMZC7W.js';
14
14
  import './chunk-ZJSNLVCE.js';
15
15
  import './chunk-DYEFPYME.js';
16
16
  import './chunk-BKO6JEZI.js';
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { LiveUploader } from './chunk-ITP76BST.js';
4
- import './chunk-P7UQZFNY.js';
3
+ import { LiveUploader } from './chunk-PNHNKMA3.js';
4
+ import './chunk-EORWWFPA.js';
5
5
  import './chunk-ESVW4MJY.js';
6
6
  import './chunk-TBT347UY.js';
7
- import './chunk-FQCLEH34.js';
8
- import './chunk-G2T4HCGT.js';
7
+ import './chunk-HXFRJKMU.js';
8
+ import './chunk-TEVO3RUV.js';
9
9
  import './chunk-BUP5N3X6.js';
10
10
  import './chunk-XSPA5ODY.js';
11
11
  import './chunk-GOSFARMS.js';
12
- import './chunk-GJZEUQ6D.js';
13
- import './chunk-C3AMVSMS.js';
12
+ import './chunk-QRZLUUNN.js';
13
+ import './chunk-QIIMZC7W.js';
14
14
  import './chunk-ZJSNLVCE.js';
15
15
  import './chunk-DYEFPYME.js';
16
16
  import './chunk-BKO6JEZI.js';
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { RUNNER_PROTOCOL } from './chunk-TPKYTORP.js';
4
- import { resolveCredentials, WorkCommandError, parsePositiveInt, postJson, environmentFacts, findLiveItemForIssue } from './chunk-DZUANBKP.js';
5
- export { WorkCommandError } from './chunk-DZUANBKP.js';
6
- import './chunk-FQCLEH34.js';
7
- import './chunk-G2T4HCGT.js';
4
+ import { resolveCredentials, WorkCommandError, parsePositiveInt, postJson, environmentFacts, findLiveItemForIssue } from './chunk-XPKI5OMT.js';
5
+ export { WorkCommandError } from './chunk-XPKI5OMT.js';
6
+ import './chunk-HXFRJKMU.js';
7
+ import './chunk-TEVO3RUV.js';
8
8
  import './chunk-BUP5N3X6.js';
9
9
  import './chunk-XSPA5ODY.js';
10
10
  import './chunk-GOSFARMS.js';
11
11
  import { defaultRunnerConfigPath } from './chunk-JWRX5ZTT.js';
12
12
  import './chunk-UXYLWVTQ.js';
13
13
  import './chunk-7RQ73DLO.js';
14
- import { defaultFetch } from './chunk-GJZEUQ6D.js';
14
+ import { defaultFetch } from './chunk-QRZLUUNN.js';
15
15
  import './chunk-BJ3KTMDH.js';
16
16
  import './chunk-QE3UQAHK.js';
17
17
  import './chunk-ANPNT6PM.js';
@@ -119,7 +119,7 @@ async function runWorkRelease(opts) {
119
119
  { sessionId, ended: true },
120
120
  fetchImpl
121
121
  );
122
- const { markWorkLeaseRenewed } = await import('./hook-fast-GD7F2EBL.js');
122
+ const { markWorkLeaseRenewed } = await import('./hook-fast-REXH5P6R.js');
123
123
  markWorkLeaseRenewed(sessionId, opts.home ?? homeFromEnv(env));
124
124
  const output2 = opts.json ? JSON.stringify(data2) : `released session ${sessionId}'s lease on #${itemId}, if it held one`;
125
125
  if (!opts.quiet) process.stdout.write(output2 + "\n");
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { WorkCommandError, environmentFacts, findLiveItemForIssue, getJson, parsePositiveInt, patchJson, postJson, resolveCredentials, runWorkBuild, runWorkLinkSession, runWorkList, runWorkRemove, runWorkStatus } from './chunk-DZUANBKP.js';
4
- import './chunk-FQCLEH34.js';
5
- import './chunk-G2T4HCGT.js';
3
+ export { WorkCommandError, environmentFacts, findLiveItemForIssue, getJson, parsePositiveInt, patchJson, postJson, resolveCredentials, runWorkBuild, runWorkLinkSession, runWorkList, runWorkRemove, runWorkStatus } from './chunk-XPKI5OMT.js';
4
+ import './chunk-HXFRJKMU.js';
5
+ import './chunk-TEVO3RUV.js';
6
6
  import './chunk-BUP5N3X6.js';
7
7
  import './chunk-XSPA5ODY.js';
8
8
  import './chunk-GOSFARMS.js';
9
- import './chunk-GJZEUQ6D.js';
9
+ import './chunk-QRZLUUNN.js';
10
10
  import './chunk-BJ3KTMDH.js';
11
11
  import './chunk-QE3UQAHK.js';
12
12
  import './chunk-ANPNT6PM.js';
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { resolveCredentials, postJson, getJson } from './chunk-DZUANBKP.js';
4
- import { detectActiveSession } from './chunk-FQCLEH34.js';
5
- import './chunk-G2T4HCGT.js';
3
+ import { resolveCredentials, postJson, getJson } from './chunk-XPKI5OMT.js';
4
+ import { detectActiveSession } from './chunk-HXFRJKMU.js';
5
+ import './chunk-TEVO3RUV.js';
6
6
  import { sanitizeTerminal } from './chunk-BUP5N3X6.js';
7
7
  import './chunk-XSPA5ODY.js';
8
8
  import './chunk-GOSFARMS.js';
9
- import { defaultFetch } from './chunk-GJZEUQ6D.js';
9
+ import { defaultFetch } from './chunk-QRZLUUNN.js';
10
10
  import './chunk-BJ3KTMDH.js';
11
11
  import { resolveRepoIdentity } from './chunk-QE3UQAHK.js';
12
12
  import { C } from './chunk-ANPNT6PM.js';
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { resolveCredentials, getJson } from './chunk-DZUANBKP.js';
4
- import './chunk-FQCLEH34.js';
5
- import './chunk-G2T4HCGT.js';
3
+ import { resolveCredentials, getJson } from './chunk-XPKI5OMT.js';
4
+ import './chunk-HXFRJKMU.js';
5
+ import './chunk-TEVO3RUV.js';
6
6
  import './chunk-BUP5N3X6.js';
7
7
  import './chunk-XSPA5ODY.js';
8
8
  import './chunk-GOSFARMS.js';
9
- import { defaultFetch } from './chunk-GJZEUQ6D.js';
9
+ import { defaultFetch } from './chunk-QRZLUUNN.js';
10
10
  import './chunk-BJ3KTMDH.js';
11
11
  import './chunk-QE3UQAHK.js';
12
12
  import './chunk-ANPNT6PM.js';
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { itemLabel, runWorkPr, WorkPrCommandError } from './chunk-CLUUAX6O.js';
4
- import { resolveCredentials } from './chunk-DZUANBKP.js';
5
- import './chunk-FQCLEH34.js';
6
- import './chunk-G2T4HCGT.js';
3
+ import { itemLabel, runWorkPr, WorkPrCommandError } from './chunk-TPAF24PK.js';
4
+ import { resolveCredentials } from './chunk-XPKI5OMT.js';
5
+ import './chunk-HXFRJKMU.js';
6
+ import './chunk-TEVO3RUV.js';
7
7
  import './chunk-BUP5N3X6.js';
8
8
  import './chunk-XSPA5ODY.js';
9
9
  import './chunk-GOSFARMS.js';
10
- import { defaultFetch } from './chunk-GJZEUQ6D.js';
10
+ import { defaultFetch } from './chunk-QRZLUUNN.js';
11
11
  import './chunk-BJ3KTMDH.js';
12
12
  import './chunk-QE3UQAHK.js';
13
13
  import { C } from './chunk-ANPNT6PM.js';
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { WorkPrCommandError, itemLabel, runWorkPr } from './chunk-CLUUAX6O.js';
4
- import './chunk-FQCLEH34.js';
5
- import './chunk-G2T4HCGT.js';
3
+ export { WorkPrCommandError, itemLabel, runWorkPr } from './chunk-TPAF24PK.js';
4
+ import './chunk-HXFRJKMU.js';
5
+ import './chunk-TEVO3RUV.js';
6
6
  import './chunk-BUP5N3X6.js';
7
7
  import './chunk-XSPA5ODY.js';
8
8
  import './chunk-GOSFARMS.js';
9
- import './chunk-GJZEUQ6D.js';
9
+ import './chunk-QRZLUUNN.js';
10
10
  import './chunk-BJ3KTMDH.js';
11
11
  import './chunk-QE3UQAHK.js';
12
12
  import './chunk-ANPNT6PM.js';
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { resolveCredentials, postJson, WorkCommandError } from './chunk-DZUANBKP.js';
4
- import './chunk-FQCLEH34.js';
5
- import './chunk-G2T4HCGT.js';
3
+ import { resolveCredentials, postJson, WorkCommandError } from './chunk-XPKI5OMT.js';
4
+ import './chunk-HXFRJKMU.js';
5
+ import './chunk-TEVO3RUV.js';
6
6
  import './chunk-BUP5N3X6.js';
7
7
  import './chunk-XSPA5ODY.js';
8
8
  import './chunk-GOSFARMS.js';
9
- import { defaultFetch } from './chunk-GJZEUQ6D.js';
9
+ import { defaultFetch } from './chunk-QRZLUUNN.js';
10
10
  import './chunk-BJ3KTMDH.js';
11
11
  import './chunk-QE3UQAHK.js';
12
12
  import './chunk-ANPNT6PM.js';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@outerlayer/cli",
3
- "version": "0.25.2",
4
- "description": "OuterLayer CLI — commands: init, claude, connect, doctor, login, logout, sync, daemon (alias: watch), emit, work, spec, runner, hooks, mcp, import, context. Capture and sync coding-agent sessions, and record proof of factory work.",
3
+ "version": "0.26.1",
4
+ "description": "OuterLayer CLI — commands: init, claude, connect, doctor, login, logout, sync, daemon (alias: watch), emit, work, spec, runner, hooks, mcp, context. Capture and sync coding-agent sessions, and record proof of factory work.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Magu Studios, Inc.",
7
7
  "repository": {
@@ -1,73 +0,0 @@
1
- #!/usr/bin/env node
2
- import { createRequire } from 'node:module';
3
- import { C } from './chunk-ANPNT6PM.js';
4
- import { skillsBaseFor, isAgentsMdLayout } from './chunk-JKNYTNYD.js';
5
- import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-HBISTTG3.js';
6
- import { cliInvocation } from './chunk-CRB3POP4.js';
7
- import './chunk-RKOTJQVG.js';
8
- import './chunk-QZBXLLTV.js';
9
- import './chunk-VNVZDWO3.js';
10
- import './chunk-RA3O54FC.js';
11
- import './chunk-Z5GEFMRW.js';
12
- import { statSync, existsSync, readFileSync, writeFileSync } from 'fs';
13
- import { join } from 'path';
14
-
15
- createRequire(import.meta.url);
16
- var ImportCaptureError = class extends Error {
17
- };
18
- var SNIPPET_FILE = "outerlayer-evidence/references/agents-snippet.md";
19
- var AGENTS_MD_MARKER = "<!-- outerlayer:capture-pack -->";
20
- function runImportCapture(opts = {}) {
21
- const cwd = opts.cwd ?? process.cwd();
22
- let cwdStat;
23
- try {
24
- cwdStat = statSync(cwd);
25
- } catch {
26
- throw new ImportCaptureError(`no such directory: ${cwd}`);
27
- }
28
- if (!cwdStat.isDirectory()) throw new ImportCaptureError(`not a directory: ${cwd}`);
29
- const base = skillsBaseFor(cwd);
30
- const SNIPPET_PATH = `${base}/${SNIPPET_FILE}`;
31
- const AGENTS_MD_PATH = isAgentsMdLayout(cwd) ? "AGENTS.md" : ".outerlayer/AGENTS.md";
32
- const bundle = loadMaintainedFiles(void 0, void 0, base);
33
- const { created: files, rewritten } = writeMaintainedFiles(cwd, bundle);
34
- const snippet = bundle.find((f) => f.path === SNIPPET_PATH)?.content ?? "";
35
- let appendedAgentsMd = false;
36
- const agentsMdAbs = join(cwd, AGENTS_MD_PATH);
37
- if (existsSync(agentsMdAbs)) {
38
- const existing = readFileSync(agentsMdAbs, "utf8");
39
- if (!existing.includes(AGENTS_MD_MARKER)) {
40
- writeFileSync(agentsMdAbs, existing + "\n" + snippet);
41
- appendedAgentsMd = true;
42
- }
43
- }
44
- let output;
45
- if (opts.json) {
46
- output = JSON.stringify({ files, rewritten, appendedAgentsMd });
47
- } else {
48
- const lines = [
49
- ...files.map((f) => `${C.green}\u2713${C.reset} wrote ${f}`),
50
- ...rewritten.map((f) => `${C.yellow}!${C.reset} rewrote ${f} to match this CLI's bundle (local edits were overwritten)`)
51
- ];
52
- if (appendedAgentsMd) lines.push(`${C.green}\u2713${C.reset} appended the evidence snippet to ${AGENTS_MD_PATH}`);
53
- if (files.length === 0 && rewritten.length === 0 && !appendedAgentsMd) {
54
- lines.push(`${C.dim}capture pack already installed \u2014 nothing to write${C.reset}`);
55
- }
56
- if (!isAgentsMdLayout(cwd)) {
57
- lines.push(`Run ${C.yellow}\`${cliInvocation()} context emit\`${C.reset} to compile the pack into your agent's native files.`);
58
- }
59
- output = lines.join("\n");
60
- }
61
- if (!opts.quiet) {
62
- process.stdout.write(output + "\n");
63
- if (!opts.json && !appendedAgentsMd && !existsSync(agentsMdAbs)) {
64
- process.stdout.write(
65
- `${C.dim} no ${AGENTS_MD_PATH} to append to \u2014 paste ${SNIPPET_PATH} into your instructions file if your harness reads no skills${C.reset}
66
- `
67
- );
68
- }
69
- }
70
- return { files, rewritten, appendedAgentsMd, output };
71
- }
72
-
73
- export { ImportCaptureError, runImportCapture };
@@ -1,173 +0,0 @@
1
- #!/usr/bin/env node
2
- import { createRequire } from 'node:module';
3
- import { C } from './chunk-ANPNT6PM.js';
4
- import './chunk-CRB3POP4.js';
5
- import { normalizePath } from './chunk-RKOTJQVG.js';
6
- import './chunk-QZBXLLTV.js';
7
- import './chunk-VNVZDWO3.js';
8
- import './chunk-Z5GEFMRW.js';
9
- import { existsSync, readdirSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
10
- import { join, dirname } from 'path';
11
-
12
- createRequire(import.meta.url);
13
- var SKIP_DIRS = /* @__PURE__ */ new Set(["node_modules", ".git"]);
14
- var ImportRulerError = class extends Error {
15
- };
16
- function toRepoRelative(base, name) {
17
- return normalizePath(`${base}/${name}`);
18
- }
19
- function discoverRulerDirs(repoRoot) {
20
- const out = [];
21
- walk(repoRoot, repoRoot, "", out);
22
- return out.sort();
23
- }
24
- function walk(dirAbs, repoRoot, dirRel, out) {
25
- let entries;
26
- try {
27
- entries = readdirSync(dirAbs, { withFileTypes: true });
28
- } catch {
29
- return;
30
- }
31
- for (const entry of entries) {
32
- if (entry.isSymbolicLink() || !entry.isDirectory()) continue;
33
- if (SKIP_DIRS.has(entry.name)) continue;
34
- const childRel = dirRel === "" ? entry.name : toRepoRelative(dirRel, entry.name);
35
- if (entry.name === ".ruler") {
36
- out.push(childRel);
37
- continue;
38
- }
39
- walk(join(dirAbs, entry.name), repoRoot, childRel, out);
40
- }
41
- }
42
- function collectFilesRecursively(dirAbs, dirRel) {
43
- const out = [];
44
- let entries;
45
- try {
46
- entries = readdirSync(dirAbs, { withFileTypes: true });
47
- } catch {
48
- return out;
49
- }
50
- for (const entry of entries) {
51
- if (entry.isSymbolicLink()) continue;
52
- const childRel = toRepoRelative(dirRel, entry.name);
53
- const childAbs = join(dirAbs, entry.name);
54
- if (entry.isDirectory()) out.push(...collectFilesRecursively(childAbs, childRel));
55
- else if (entry.isFile()) out.push(childRel);
56
- }
57
- return out;
58
- }
59
- function catalogRulerDir(repoRoot, rulerDirRel) {
60
- const abs = join(repoRoot, rulerDirRel);
61
- const catalog = { otherMd: [], unmapped: [] };
62
- const mdFilenames = [];
63
- let entries;
64
- try {
65
- entries = readdirSync(abs, { withFileTypes: true });
66
- } catch {
67
- entries = [];
68
- }
69
- for (const entry of entries) {
70
- if (entry.isSymbolicLink()) continue;
71
- const childRel = toRepoRelative(rulerDirRel, entry.name);
72
- if (entry.isDirectory()) {
73
- catalog.unmapped.push(...collectFilesRecursively(join(abs, entry.name), childRel));
74
- continue;
75
- }
76
- if (!entry.isFile()) continue;
77
- if (entry.name === "AGENTS.md") catalog.agentsMd = readFileSync(join(abs, entry.name), "utf8");
78
- else if (entry.name === "mcp.json") catalog.mcpJson = readFileSync(join(abs, entry.name), "utf8");
79
- else if (entry.name === "ruler.toml") catalog.rulerTomlPath = childRel;
80
- else if (entry.name.endsWith(".md")) mdFilenames.push(entry.name);
81
- else catalog.unmapped.push(childRel);
82
- }
83
- catalog.otherMd = mdFilenames.sort((a, b) => a.localeCompare(b)).map((filename) => ({ filename, content: readFileSync(join(abs, filename), "utf8") }));
84
- return catalog;
85
- }
86
- function scopeOf(rulerDirRel) {
87
- if (rulerDirRel === ".ruler") return "";
88
- return rulerDirRel.slice(0, rulerDirRel.length - "/.ruler".length);
89
- }
90
- function outerlayerDirFor(scopePath) {
91
- return scopePath === "" ? ".outerlayer" : `${scopePath}/.outerlayer`;
92
- }
93
- function writeOutFile(repoRoot, relPath, content) {
94
- const abs = join(repoRoot, relPath);
95
- mkdirSync(dirname(abs), { recursive: true });
96
- writeFileSync(abs, content);
97
- }
98
- function renderSuccess(scopes, warnings) {
99
- const warningSuffix = warnings.length > 0 ? `, ${warnings.length} warning${warnings.length === 1 ? "" : "s"}` : "";
100
- const lines = [`${C.green}\u2713${C.reset} imported ${scopes.length} .ruler/ scope${scopes.length === 1 ? "" : "s"}${warningSuffix}`];
101
- for (const s of scopes) {
102
- const written = [s.agentsMdWritten, s.mcpWritten].filter((p) => p !== void 0);
103
- lines.push(` ${C.dim}${s.scopePath === "" ? "(root)" : s.scopePath}${C.reset} \u2192 ${written.join(", ") || "nothing to import"}`);
104
- }
105
- return lines.join("\n");
106
- }
107
- function runImportRuler(opts = {}) {
108
- const cwd = opts.cwd ?? process.cwd();
109
- if (!existsSync(cwd)) throw new ImportRulerError(`no such directory: ${cwd}`);
110
- const rulerDirs = discoverRulerDirs(cwd);
111
- if (rulerDirs.length === 0) {
112
- const output2 = opts.json ? JSON.stringify({ scopes: [], warnings: [] }) : `${C.dim}no .ruler/ directories found \u2014 nothing to import${C.reset}`;
113
- if (!opts.quiet) process.stdout.write(output2 + "\n");
114
- return { scopes: [], warnings: [], output: output2, exitCode: 0 };
115
- }
116
- const conflicts = rulerDirs.map((rel) => outerlayerDirFor(scopeOf(rel))).filter((outerlayerRel) => existsSync(join(cwd, outerlayerRel)));
117
- if (conflicts.length > 0) {
118
- throw new ImportRulerError(
119
- `refusing to import \u2014 .outerlayer/ already exists at: ${conflicts.join(", ")} (never overwritten; remove it first to replace it)`
120
- );
121
- }
122
- const scopes = [];
123
- const warnings = [];
124
- for (const rulerDirRel of rulerDirs) {
125
- const scopePath = scopeOf(rulerDirRel);
126
- const outerlayerRel = outerlayerDirFor(scopePath);
127
- const catalog = catalogRulerDir(cwd, rulerDirRel);
128
- const scope = { scopePath };
129
- if (catalog.agentsMd !== void 0 || catalog.otherMd.length > 0) {
130
- let content = catalog.agentsMd ?? "";
131
- for (const { filename, content: mdContent } of catalog.otherMd) {
132
- content += `
133
-
134
- <!-- imported from .ruler/${filename} -->
135
-
136
- ${mdContent}`;
137
- }
138
- const agentsPath = toRepoRelative(outerlayerRel, "AGENTS.md");
139
- writeOutFile(cwd, agentsPath, content);
140
- scope.agentsMdWritten = agentsPath;
141
- }
142
- if (catalog.mcpJson !== void 0) {
143
- const mcpPath = toRepoRelative(outerlayerRel, "mcp.json");
144
- writeOutFile(cwd, mcpPath, catalog.mcpJson);
145
- scope.mcpWritten = mcpPath;
146
- }
147
- if (catalog.rulerTomlPath !== void 0) {
148
- warnings.push({
149
- code: "ruler_toml_not_imported",
150
- path: catalog.rulerTomlPath,
151
- message: `${catalog.rulerTomlPath} was not imported \u2014 target selection now lives in .outerlayer/config.json; per-tool config is superseded`
152
- });
153
- }
154
- for (const path of catalog.unmapped) {
155
- warnings.push({ code: "unmapped_file", path, message: `${path} has no .outerlayer/ equivalent \u2014 not imported` });
156
- }
157
- scopes.push(scope);
158
- }
159
- warnings.sort((a, b) => a.path.localeCompare(b.path));
160
- const output = opts.json ? JSON.stringify({ scopes, warnings }) : renderSuccess(scopes, warnings);
161
- if (!opts.quiet) {
162
- if (opts.json) {
163
- process.stdout.write(output + "\n");
164
- } else {
165
- process.stdout.write(output + "\n");
166
- for (const w of warnings) process.stderr.write(` ${C.yellow}!${C.reset} ${w.path}: ${w.message}
167
- `);
168
- }
169
- }
170
- return { scopes, warnings, output, exitCode: 0 };
171
- }
172
-
173
- export { ImportRulerError, runImportRuler };